Pagina precedente | 1 2 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Riga di codice per filtrare solo le righe con data senza formule

Ultimo Aggiornamento: 14/06/2018 20:06
Post: 77
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
11/06/2018 11:37

Re:
GiuseppeMN, 11/06/2018 07.36:

Buona giornata, sputnik_r;
dall'immagine proposta in Risposta #26 vedo una situazione molto diversa rispetto a quella proposta nel File in #1.

A questo punto devo chiederti di rimandarmi il tuo File con la situazione proposta in Risposta #26; in questo modo vedo quello che devo modificare.



A disposizione.

Giuseppe




Buongiorno Giuseppe.


Ho modoficato quello fatto da te, solo le date. Ho messo i riferimenti in modo che cambiando la 1à in blu il calendario sia completo anche per l'anno seguente.
Lo stesso fanno le celle con le squadrre nell'orginale; ma l'effetto lo puoi vedere anche così.  Elimina le date con l' 1 e vedrai che saltano i riferimenti tra le celle.
Post: 78
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
11/06/2018 11:47

Qui si vede ancora meglio...
ho riprodotto la situazione tipo in cui mi ritroverei...


alcune celle contenenti date con riferimenti e altre (quelle con la scritta "senza formula") con solo la data ma nessun riferimento.
Post: 3.021
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
11/06/2018 12:16

Buona giornata, sputnik_r.
I Record in Riga 10,11,12,13,14,15 e 16 non si riferiscono a Date duplicate ma, avendo indicato in Colonna "I" un valore i Record verranno cancellati e quindi creeranno "#RIF!" nelle Celle sottostanti

La filosofia della mia proposta era di eliminare le Date duplicate; se la tua esigenza è quella di non considerare le Date duplicate ma di cancellare tutti i Record identificati da un Valore inserito in Colonna "I", cambia tutto.

Sub Elimina_Date_duplicate()
Dim Titolo As String, Messaggio As String, Default As String, PswA As String
    Titolo = "Protezione Codice ''Elimina Date duplicate"    ' Definisce il titolo.
    Messaggio = "Per accedere a questa Funzione, devi inserire la Password di autenticazione"
    Default = ""
        PswA = Application.InputBox(Messaggio, Titolo, Default)
    If PswA <> Psw Then
        MsgBox "La Password" & Chr(10) & PswA & Chr(10) _
        & "non è corretta; chiedi autorizzazione al Responsabile."
            End
    End If
Application.ScreenUpdating = False
Dim Nrc As Long, x As Long
    
    Call Visualizza_DataSet
    Nrc = Range("B" & Rows.Count).End(xlUp).Row
        For x = Nrc To 4 Step -1
            If Cells(x, 9).Value <> "" Then Cells(x, 2).EntireRow.Delete
        Next x
    Nrc = Range("B" & Rows.Count).End(xlUp).Row
        Cells(5, 2).FormulaLocal = "=$B4+1"
        Cells(5, 2).Copy Range(Cells(5, 2), Cells(Nrc, 2))
Application.ScreenUpdating = True
End Sub


Praticamente ho dovuto aggiungere:
Nrc = Range("B" & Rows.Count).End(xlUp).Row
Cells(5, 2).FormulaLocal = "=$B4+1"
Cells(5, 2).Copy Range(Cells(5, 2), Cells(Nrc, 2))


Non vedo più le Formule in Colonna "H"; è corretto?



A disposizione.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 3.023
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
11/06/2018 12:31

I "#RIF!" sono spaririti ma i riferimenti delle date sono cambiati e questo credo non ti vada bene; temo che ci siano ancora incomprensioni.

Sei sicuro che non convenga trasformare le Formule in "valore assoluto"?

A questo punto credo convengano due chiacchiere in Skype; con l'impegno formale di condividere in Forum gli eventuali sviluppi.


Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 79
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
11/06/2018 13:13

Grazie Giuseppe.

Appena potrò proverò la nuova soluzione.

E se non è quel che voglio cercherò di postare il file reale.

E di spiegarmi ancor meglio.

Le date vengono duplicate perché nello stesso giorno possono esserci più richiedenti ferie o permessi.
Mentre vengono duplicate le celle sottostanti continuano a far riferimento alle formule delle celle con formule
Quindi alka fine dell'anno o del mese potrebbe rendersi utile eliminare i doppioni delle date per reimpostare il file e partire con un calendario vergine senza duplicati e senza date duplicate senza formule.

Comunque appena ho tempo preparo un file.

Ancora grazie.

Post: 3.025
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
11/06/2018 17:39

Buona sera, sputnik_r.
Provo a togliermi il "cappello Excel" e metto quello di quando ero responsabile di Produzione.
Il File l'avrei concepito in questo modo :

-    N° 1 Foglio di lavoro per ogni Collaboratore
-    In Colonna "A" l'ncremento da attribuire alla Data presente nella Cella in Colonna "C"
-    Foglio di lavoro Protetto con eslusione delle Celle "A4:J406"; poi vedrai tu se aumentare o diminuire questo Range
-    Soliti tre Pulsanti per ogni Foglio di lavoro

Non mi resta che ...     ... e augurarmi possa esserti d'aiuto.


A disposizione.

Buona serata.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 80
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
11/06/2018 18:32

Re:
GiuseppeMN, 11/06/2018 17.39:

Buona sera, sputnik_r.
Provo a togliermi il "cappello Excel" e metto quello di quando ero responsabile di Produzione.
Il File l'avrei concepito in questo modo :

-    N° 1 Foglio di lavoro per ogni Collaboratore
-    In Colonna "A" l'ncremento da attribuire alla Data presente nella Cella in Colonna "C"
-    Foglio di lavoro Protetto con eslusione delle Celle "A4:J406"; poi vedrai tu se aumentare o diminuire questo Range
-    Soliti tre Pulsanti per ogni Foglio di lavoro

Non mi resta che ...     ... e augurarmi possa esserti d'aiuto.


A disposizione.

Buona serata.

Giuseppe



Infatti; hai colto nel segno sono proprio responsabile di produzione...da troppi anni ormai.


E questa è una bega che mi sono preso extra. Il calendario lo feci 99 e ora ho implementato per l'utilizzo come gestione personale e relative richieste ferie, permessi 104, permessi avis, parentali ecc.

Quindi quella che vedi è una parte piccola e fatta nel 99... non posso più cambiare...tra l'altro essendo una bega extra chi me lo fa fare...non so se mi spiego...







[Modificato da sputnik_r 11/06/2018 18:33]
Post: 81
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
11/06/2018 18:39

anzi...
...direi che va più che bene adesso...



quando i permessi sono più di 1 in un giorno, inserisco una riga vuota che mi duplica la data e le formule che conteggiano il trova sostituti, passato, futuro, urgente da sostituire.


Bene quelle righe duplicate dovrebbero essere eliminate quando voglio io lasciandomi il calendario con tutti i riferimenti che sono diversi e elementari rispetto i tuoi, ma funzionano benissimo allo scopo.


se non riuscirò nell'intento tengo buono un calendario vergine per il prox anno e quelli successivi.

Gli ostacoli vanno aggirati...a maggior ragione quando non ci guadagni nulla.


Dopo 32 anni di lavoro con i libretti e 4/5 senza quel che ho capito è che il punto è proprio quello: RIUSCIRE A GUADAGNARE da quel che si fa. E' sempre più difficile.
[Modificato da sputnik_r 11/06/2018 18:39]
Post: 3.026
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
11/06/2018 18:47

Buona sera, sputnik_r.

@sputnik_r in Risposta #37, scrive:


... Il calendario lo feci 99 e ora ho implementato per l'utilizzo come gestione personale e relative richieste ferie, permessi 104, permessi avis, parentali ecc.

Quindi quella che vedi è una parte piccola e fatta nel 99... non posso più cambiare



Aquesto punto non saprei che aggiungere se non che, senza alcun dubio, sarei partito con ACCESS e non con Excel.



Buona serata.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 82
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
11/06/2018 18:49

Re:
GiuseppeMN, 11/06/2018 18.47:

Buona sera, sputnik_r.

@sputnik_r in Risposta #37, scrive:


... Il calendario lo feci 99 e ora ho implementato per l'utilizzo come gestione personale e relative richieste ferie, permessi 104, permessi avis, parentali ecc.

Quindi quella che vedi è una parte piccola e fatta nel 99... non posso più cambiare



Aquesto punto non saprei che aggiungere se non che, senza alcun dubio, sarei partito con ACCESS e non con Excel.



Buona serata.

Giuseppe



Vediamo cosa fa quel codice che hai aggiunto...quando posso lo provo.  Grazie mille, ciao.
Post: 83
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
11/06/2018 18:54

Re:
GiuseppeMN, 11/06/2018 12.16:

Buona giornata, sputnik_r.
I Record in Riga 10,11,12,13,14,15 e 16 non si riferiscono a Date duplicate ma, avendo indicato in Colonna "I" un valore i Record verranno cancellati e quindi creeranno "#RIF!" nelle Celle sottostanti

La filosofia della mia proposta era di eliminare le Date duplicate; se la tua esigenza è quella di non considerare le Date duplicate ma di cancellare tutti i Record identificati da un Valore inserito in Colonna "I", cambia tutto.

Sub Elimina_Date_duplicate()
Dim Titolo As String, Messaggio As String, Default As String, PswA As String
    Titolo = "Protezione Codice ''Elimina Date duplicate"    ' Definisce il titolo.
    Messaggio = "Per accedere a questa Funzione, devi inserire la Password di autenticazione"
    Default = ""
        PswA = Application.InputBox(Messaggio, Titolo, Default)
    If PswA <> Psw Then
        MsgBox "La Password" & Chr(10) & PswA & Chr(10) _
        & "non è corretta; chiedi autorizzazione al Responsabile."
            End
    End If
Application.ScreenUpdating = False
Dim Nrc As Long, x As Long
    
    Call Visualizza_DataSet
    Nrc = Range("B" & Rows.Count).End(xlUp).Row
        For x = Nrc To 4 Step -1
            If Cells(x, 9).Value <> "" Then Cells(x, 2).EntireRow.Delete
        Next x
    Nrc = Range("B" & Rows.Count).End(xlUp).Row
        Cells(5, 2).FormulaLocal = "=$B4+1"
        Cells(5, 2).Copy Range(Cells(5, 2), Cells(Nrc, 2))
Application.ScreenUpdating = True
End Sub


Praticamente ho dovuto aggiungere:
Nrc = Range("B" & Rows.Count).End(xlUp).Row
Cells(5, 2).FormulaLocal = "=$B4+1"
Cells(5, 2).Copy Range(Cells(5, 2), Cells(Nrc, 2))


Non vedo più le Formule in Colonna "H"; è corretto?



A disposizione.

Giuseppe




Questo mi ha cancellato tutto del file che utilizzo per le prove.


Poco male; qui su questo mi arrendo. Grazie ancora.
Post: 3.027
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
11/06/2018 20:00

@sputnik_r, in Risposta #41, scrive:


Questo mi ha cancellato tutto del file che utilizzo per le prove.



Solo per completezza.

 Nrc = Range("B" & Rows.Count).End(xlUp).Row 

Controlla quanti Record ci sono nel DataSet

 Cells(5, 2).FormulaLocal = "=$B4+1" 

In Cella "B5" riporta la Data successiva a quella presente in Cella "B4"

 Cells(5, 2).Copy Range(Cells(5, 2), Cells(Nrc, 2)) 

Copia la Formula presente in "B5" nelle Celle sottostanti fino all'ultimo Record presente nel DataSet.

Non so su quale File hai testato il Codice ma non può averti cancellato tutto; quello che può essere successo è quello che ho scritto in Risposta #34.

@GiuseppeMn, in Risposta #34, scrive:


... I "#RIF!" sono spaririti ma i riferimenti delle date sono cambiati e questo credo non ti vada bene ...



Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 84
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
11/06/2018 20:08

L'ho provato sul file quasi completo su cui faccio le prove ma se è così lo riproverò con più attenzione. ..non appena ho tempo.

Buona serata.
Post: 85
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
11/06/2018 20:13

Le date ovviamente devono essere continuative per tutto l'anno. E mantenere il criterio del 1 2 3 turno i riposi e ferie.

Tutte quelle celle sono concatenate.

I duplicati duplicano la riga senza formule mentre la riga che scende continua a mantenere i riferimenti a quella precedente a quella duplicata.
Se la duplichi 5 volte la riga a cui faranno riferimento i dati del nuovo giorno continuerà a essere quella 5 righe sopra.
Post: 86
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
14/06/2018 12:50

Rieccomi all'assalto...
...


Buongiorno.

Purtroppo ho provato tutti i codici proposti e anche qualche modifica senza risultati.

Siamo arrivati ad avere l'elenco filtrato di date e turni duplicati SENZA FORMULE.

Come spiego nell'immagine allegata, se provo ad eliminare manualmente una a una le righe tutti i riferimenti delle righe nascoste sopravvivono e tutto continua a funzionare.

Se invece seleziono tutto manualmente oppure lo faccio fare ai vari codici vba proposti, i riferimenti nelle celle delle righe nascoste vanno persi.

A questo punto servirebbe un codice che elimini le righe filtrate una a una indipendentemente da quante ce ne sono da eliminare.
L'importante è che elimini tutte quelle visibili.

Grazie


Post: 3.537
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
14/06/2018 13:34

Si esiste, e Tu fai un grosso casino... (allega il file che usi, con spiegazioni idonee)
Se elimini un'area "filtrata", in mezzo ci "saranno pure" righe non selezionate
Pertanto ad ogni riga elimini dal "basso verso l'alto", una riga per volta.
Quale è il critero? Il fatto che sia una formula oppure la data (riga precedente sia uguale?"

Poi se alleghi un'esempio finale, UGUALE al Tuo originale "password ed limitazioni sui bottoni", non saprei come risolvere
[Modificato da raffaele1953 14/06/2018 13:36]
Excel 2013
Post: 3.034
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
14/06/2018 15:51

sputnik_r, no, allegare alcun File; è assolutamente inutile.

Con questa Risposta siamo arrivati a #47, quasi un libro, o accetti di seguire le regole delle Procedure o decidi di modificarli a tuo piacerere; in questo secondo caso devi provare e riprovare le tue scelte fino ad ottenere ciò che desideri.

Ti ho proposto due soluzioni piuttosto diverse fra loro entrabe eliminano le righe "una ad una", controlla i Codici VBA e ti renderai conto che è esattamente così.

Ti auguro di cuore di avere la fortuna di trovare, come auspichi nell'immagine allegata in Risposta #45:
-    Qualcuno che abbia un Codice VBA che elimini le righe una ad una visto che solo così, ndr. secondo te, tutto continua a funzionare.

In Risposta #34 mi ero offerto per un collegamento in Skype; ritiro la mia disponibilità.

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 87
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
14/06/2018 16:00

Giuseppe, sei stato molto disponibile ma ti garantisco che dopo il trattamento del tuo codice i riferimenti vanno persi.

Li ho provati anche oggi.


Quando riuscirò preparerò il file senza dati sensibili.
Post: 88
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
14/06/2018 16:03

Raffaele; se vado su una qualsiasi delle righe e con pulsante dx seleziono "elimina" i riferimenti rimangono.

Se invece seleziono tutte le righe ed elimino, in quel caso, no.

Post: 89
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
14/06/2018 16:04

Grazie a entrambi per la pazienza, comunque.
Post: 3.040
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
14/06/2018 17:07

@sputnik_r, scrive:

... ti garantisco che dopo il trattamento del tuo codice i riferimenti vanno persi.


Solo per completezza, garantisco anch'io che prima di inviare una proposta conduco Test approfonditi.
Nell'immagine allegata la situazione iniziale e quella dopo aver eseguito il Codice VBA proposto in Risposta #41.
Da sabato-06-01-2018 in poi, dopo l'eliminazione i turni sono cambiati come precisato:

Giuseppe, in Risposta #34, scrive:

... I "#RIF!" sono spaririti ma i riferimenti delle date sono cambiati e questo credo non ti vada bene ...



In alternativa, successivamente, avevo prposto un'altra Procedura più flessibile che consentiva di non perdere i Riferimenti nelle Date sottostanti a quelle cancellate.

Ovviamente può capitare che proponga soluzioni non perfettamente testate ma non in questo caso.


Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 90
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
14/06/2018 17:51

Re:
GiuseppeMN, 14/06/2018 17.07:

@sputnik_r, scrive:

... ti garantisco che dopo il trattamento del tuo codice i riferimenti vanno persi.


Solo per completezza, garantisco anch'io che prima di inviare una proposta conduco Test approfonditi.
Nell'immagine allegata la situazione iniziale e quella dopo aver eseguito il Codice VBA proposto in Risposta #41.
Da sabato-06-01-2018 in poi, dopo l'eliminazione i turni sono cambiati come precisato:

Giuseppe, in Risposta #34, scrive:

... I "#RIF!" sono spaririti ma i riferimenti delle date sono cambiati e questo credo non ti vada bene ...



In alternativa, successivamente, avevo prposto un'altra Procedura più flessibile che consentiva di non perdere i Riferimenti nelle Date sottostanti a quelle cancellate.

Ovviamente può capitare che proponga soluzioni non perfettamente testate ma non in questo caso.


 



A questo punto possiamo essere contenti ugualmente Giuseppe; a giudicare dalle visite comunque interesse ne abbiamo suscitato...non abbiamo risolto ma ne sono uscite cose interessanti, no?


Sul mio file non funziona, comunque secondo me la discussione è servita ugualmente a me e gli altri utenti.





Post: 3.041
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
14/06/2018 18:40

Il File è quello che hai allegato tu in #32; se funziona solo a me sono portato a credere sia "l'aria del mio paesello".

Appena ho un momento di tempo preparo una bottiglia con l'aria delle mie parti e te la invio.

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 91
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
14/06/2018 19:00

Re:
GiuseppeMN, 14/06/2018 18.40:

Il File è quello che hai allegato tu in #32; se funziona solo a me sono portato a credere sia "l'aria del mio paesello".

Appena ho un momento di tempo preparo una bottiglia con l'aria delle mie parti e te la invio.




hehehe... 


senti Giuseppe; torniamo alle basi (più adatte a me ovviamente) perché si verifica questo in foto ?





Post: 92
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
14/06/2018 19:02

ma anche...
..perché il tuo codice mi si blocca su questa riga di codice ?



Post: 3.044
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
14/06/2018 19:46

Dopo 55 (cinquantacinque) Risposte non ho alcuna intenzione di "tornare alle basi", quindi, vediamo di chiudere questa triste vicenda che in ogni caso, per mè si conclude ora; poi, se trovi soddisfazione nel numero di visite ti lascio in buone, anzi ottime mani di qualche altro "Compagno di viaggio".

Immagine in Risposta #54
Se avessi deciso di utilizzare la Funzione "Elimina" non avrei certo scritto il Codice VBA "Elimina_Date_duplicate"

Immagine in Risposta #55
Se dal Codice proposto in Risposta #14 hai deciso di eliminare i Codici VBA:
-    Visualizza_DataSet
-    Filtra_Date_duplicate
non puoi pretendere di richiamare il Codice VBA "Visualizza_DataSet" impunemente.

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 93
Registrato il: 03/03/2014
Città: TORINO
Età: 54
Utente Junior
2007
OFFLINE
14/06/2018 20:06



Infatti ho provato anche a inserilo tutto... in quel caso cancella tutto ma poi il risultato, solo in quel caso, è di ottenere tanti mancati riferimenti quando levo il filtro.
Vota: 15MediaObject0,00557
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 10:14. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com