Excel Forum Per condividere esperienze su Microsoft Excel

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

  • Messaggi
  • OFFLINE
    sputnik_r
    Post: 61
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 08/06/2018 18:49
    Buona sera.

    Qualcuno ha gentilmente una riga di codice che abbinerei a un pulsante per filtrare ed eliminare solo le date doppie/triple/quadruple di un n° di righe variabile in base a quante date hanno duplicato con solo "valori senza formule" ?

    Grazie mille.


    P.S.: allego un file di esempio con le date in azzurro senza formule
  • OFFLINE
    tanimon
    Post: 1.174
    Registrato il: 27/06/2011
    Utente Veteran
    excel 2007
    00 08/06/2018 19:17
    ciao,
    non ho guardatoil file,
    ma dopo avere applicato il filtro dove sono i duplicati,

    prova questa da mettere in un modulo standard e a cui abbinare un pulsante

    Dim priga As Long
    Dim uriga As Long
    
    uriga = Range("A" & Rows.Count).End(xlUp).Row
    priga = Range("A2:A" & Rows.Count).SpecialCells(xlCellTypeVisible).Row
    
    Range(Cells(priga + 1, 1), Cells(uriga, 1)).EntireRow.Delete
    
    Range("A2").Activate
    Range("A2").AutoFilter


    rimane solo 1 riga filtrata

    ciao
    Frank
    [Modificato da tanimon 08/06/2018 19:25]







    Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
    Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
  • OFFLINE
    sputnik_r
    Post: 61
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 08/06/2018 20:19
    Re:
    tanimon, 08/06/2018 19.17:

    ciao,
    non ho guardatoil file,
    ma dopo avere applicato il filtro dove sono i duplicati,

    prova questa da mettere in un modulo standard e a cui abbinare un pulsante

    Dim priga As Long
    Dim uriga As Long
    
    uriga = Range("A" & Rows.Count).End(xlUp).Row
    priga = Range("A2:A" & Rows.Count).SpecialCells(xlCellTypeVisible).Row
    
    Range(Cells(priga + 1, 1), Cells(uriga, 1)).EntireRow.Delete
    
    Range("A2").Activate
    Range("A2").AutoFilter


    rimane solo 1 riga filtrata

    ciao
    Frank



    Grazie, ho provato.


    Ma non riesco ad avere quel che mi serve.


    Forse guardando il file si capisce meglio.


    Le date in azzurro senza formule dovrebbero essere filtrate e vedersi solo le righe che le contengono.

    Poi io cancellerei tutte le righe senza formule dopo averle controllate.

    Magari non si può fare, non so.
  • OFFLINE
    tanimon
    Post: 1.175
    Registrato il: 27/06/2011
    Utente Veteran
    excel 2007
    00 08/06/2018 20:33
    Re:
    ciao,
    questa la richiesta iniziale:

    sputnik_r, 6/8/2018 6:49 PM:

    Buona sera.

    Qualcuno ha gentilmente una riga di codice che abbinerei a un pulsante per filtrare ed eliminare solo le date doppie/triple/quadruple di un n° di righe variabile in base a quante date hanno duplicato con solo "valori senza formule" ?



    con o senza formule le date sono date,
    che siano doppi/triple/qudruple,

    quindi,

    abbandono la discussione
    per mancanza di coerenza tra richiesta e riscontro alla soluzione proposta.

    Sicuramente tra gli utenti del forum, troverai qualcuno più disponibile del sottoscritto.

    Buon lavoro
    ciao
    Frank







    Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
    Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
  • OFFLINE
    GiuseppeMN
    Post: 3.005
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 08/06/2018 23:53
    Buona sera, sputnik_r;
    leggo solo ora.

    Dopo un caro saluto a Frank, espongo il mio pensiero.

    Sono partito dall'idea che non sia necessario conoscere le date duplicate; anche perch'è non mi sento escludere che esistano più duplicati di Date diverse.
    Quindi non mi è possibile applicare il Filtro.

    Ho provato ad eliminare i duplicati con la Funzione "Rimuovi duplicati" ma ho riscontrato problemi nella gestione delle Formule presenti nelle Celle in Colonna "H".

    A questo punto ho optato per un semplice Codice VBA di questo tipo:

    Option Explicit
    
    Sub Elimina_Date_duplicate()
    Application.ScreenUpdating = False
    Dim Nrc As Long, x As Long
    
        Nrc = Range("B" & Rows.Count).End(xlUp).Row
            For x = Nrc To 4 Step -1
                If Cells(x, 2).Value = Cells(x - 1, 2).Value Then Cells(x, 2).EntireRow.Delete
            Next x
    Application.ScreenUpdating = True
    End Sub
    

    Forse si può semplicare ma mi sembra funzionare.



    A disposizione.

    Buon fine settimana.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    raffaele1953
    Post: 3.530
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    00 09/06/2018 00:47
    Un saluto a tanimon
    Un saluto a GiuseppeMN

    Oltre alla richiesta bisogna anche cercare di spiegarsi al meglio
    Solo dopo aver visto l'allegato, forse ho capito cosa intendi per DATE + "valori senza formule"
    Tu desideri che tutte le Date NON create da formule siano ...eliminate. Intendevi cancellate oppure eliminata la riga?
    FarTi il codice "per eliminare righe" sulla colonna B, non và bene (riga4 e dopo riga403 ci sono dei dati)
    Per fortuna hai la colonna A che è similare. PS. se esegui il codice sulla colonna B cambiare Cells(X, 1) in Cells(X, 2)
    NB. La riga verde, sceglie nelle celle se sono presenti dati oppure formule (per la colonna A non serve)

    Sub Elimina()
    Dim Ur As Long, X As Long
    Ur = Range("A" & Rows.Count).End(xlUp).Row
    For X = Ur To 5 Step -1
    If Cells(X, 1) = "" Then Rows(X & ":" & X).Delete
    'If Mid(Cells(X, 1).Formula, 1, 1) <> "=" Then Rows(X & ":" & X).Delete
    Next X
    MsgBox "fatto"
    End Sub
    [Modificato da raffaele1953 09/06/2018 00:53]
    Excel 2013
  • OFFLINE
    sputnik_r
    Post: 62
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 09/06/2018 06:41
    Si avete ragione per fretta o altre ragioni non sempre è facile farsi capire; per questo ho allegato il file.

    Ci riprovo, poi appena possibile provo le soluzioni proposte.

    Vi ringrazio per gli aiuti.

    Io ho questo file che ha un calendario annuale per 5 squadre.
    Dovendo inserire tante date duplicate quante saranno le richieste di ferie e permessi durante l'anno, mi ritroverò con alcune date duplicate una sola volta e altre 5/7 volte.

    Ovviamente avevo anche bisogno di mantenere validi i riferimenti per poter continuare ad avere il calendario esatto anche dopo aver inserito delle date duplicate senza formule.

    A fine anno ad esempio, oppure quando voglio io, vorrei poter vedere/filtrare solo le righe che contengono le date senza formule che fanno riferimento alla cella precedente.
    Lo potrei fare sui turni, non cambierebbe perché anche loro una volta duplicati e inseriti in una nuova riga perdono i riferimenti e viene copiato solo il valore come si può vedere nel file.

    Durante l'anno potrei ritrovarmi a cancellare righe complete senza formule con data duplicata riferita al passato ad esempio. Mentre a fine anno, potrei voler cancellare tutte le date duplicate lasciando il calendario vergine con i 365 gg e le sue formule. Anche quelle che sono a dx che nel foglio non ho inserito e servono a evidenziare i sostituti da trovare, quelli trovati, quelli urgenti ecc...

    In sostanza chiedevo se con un solo click su un pulsante era possibile filtrare solo le righe inserite con data duplicata senza formule. Se poi vedo che va bene e non da errori potrei inserire una riga di codoce che me le cancelli con lo stesso click. Ma devo essere sicuro funzioni bene prima.
    Credo che inserirei anche un msg pop up che mi chieda conferma prima di cancellare.
    Per sicurezza contro cancellazioni accidentali visto che lo usiamo in tanti il file.

    Comunque appena riesco provo i codici proposti; probabilmente la soluzione è gia lì.






    [Modificato da sputnik_r 09/06/2018 06:44]
  • OFFLINE
    sputnik_r
    Post: 63
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 09/06/2018 07:57
    metto anche immagine per scrupolo





    .
  • OFFLINE
    sputnik_r
    Post: 64
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 09/06/2018 08:58
    Re:
    raffaele1953, 09/06/2018 00.47:

    Un saluto a tanimon
    Un saluto a GiuseppeMN

    Oltre alla richiesta bisogna anche cercare di spiegarsi al meglio
    Solo dopo aver visto l'allegato, forse ho capito cosa intendi per DATE + "valori senza formule"
    Tu desideri che tutte le Date NON create da formule siano ...eliminate. Intendevi cancellate oppure eliminata la riga?
    FarTi il codice "per eliminare righe" sulla colonna B, non và bene (riga4 e dopo riga403 ci sono dei dati)
    Per fortuna hai la colonna A che è similare. PS. se esegui il codice sulla colonna B cambiare Cells(X, 1) in Cells(X, 2)
    NB. La riga verde, sceglie nelle celle se sono presenti dati oppure formule (per la colonna A non serve)

    Sub Elimina()
    Dim Ur As Long, X As Long
    Ur = Range("A" & Rows.Count).End(xlUp).Row
    For X = Ur To 5 Step -1
    If Cells(X, 1) = "" Then Rows(X & ":" & X).Delete
    'If Mid(Cells(X, 1).Formula, 1, 1) <> "=" Then Rows(X & ":" & X).Delete
    Next X
    MsgBox "fatto"
    End Sub










    Buongiorno.

    Le righe complete che contengono la data senza formula.


    [Modificato da sputnik_r 09/06/2018 08:58]
  • OFFLINE
    raffaele1953
    Post: 3.532
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    00 09/06/2018 10:10
    Questo codice filtra le Date (B) senza formule, l'altro le fa rivedere nuovamente
    vb
    Sub nascondi()
    Dim Ur As Long, X As Long
    Ur = Range("B" & Rows.Count).End(xlUp).Row
    For X = Ur To 5 Step -1
    If Mid(Cells(X, 2).Formula, 1, 1) = "=" Then Rows(X & ":" & X).Hidden = True
    Next X
    MsgBox "fatto"
    End Sub
    
    Sub scopri()
    Rows("1:65536").Hidden = False
    End Sub
    Excel 2013
  • OFFLINE
    sputnik_r
    Post: 65
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 09/06/2018 10:55
    Re:
    raffaele1953, 09/06/2018 10.10:

    Questo codice filtra le Date (B) senza formule, l'altro le fa rivedere nuovamente
    vb
    Sub nascondi()
    Dim Ur As Long, X As Long
    Ur = Range("B" & Rows.Count).End(xlUp).Row
    For X = Ur To 5 Step -1
    If Mid(Cells(X, 2).Formula, 1, 1) = "=" Then Rows(X & ":" & X).Hidden = True
    Next X
    MsgBox "fatto"
    End Sub
    
    Sub scopri()
    Rows("1:65536").Hidden = False
    End Sub




    Bello davvero, mi pare vada alla grande. Ora lo provo sul file vero che sto già utilizzando... Grazie mille.


    .

    [Modificato da sputnik_r 09/06/2018 10:56]
  • OFFLINE
    sputnik_r
    Post: 66
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 09/06/2018 11:08
    Quando l'ho avviato...
    ..pensavo partisse lo schermo perché sfarfallava, manco il tempo di interrompere perché credevo si fosse bloccato Excel, e ha fatto il lavoro perfettamente.


    Grazie Raffaele; codice breve ma molto efficace e utile.
  • OFFLINE
    sputnik_r
    Post: 67
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 09/06/2018 11:38
    Mi sono entusiasmato troppo presto....



    ... con Excel capita spesso.


    Non trova sempre tutte le date. A volte sì altre no.


    Poi devo capire perché se elimino le righe che trova, che non hanno formule o riferimenti, vanno persi anche i riferimenti di quelle non filtrate.Mentre se elimino i doppioni a mano uno a uno tutto rimane a posto.
    Ma questa è un altra storia.
    [Modificato da sputnik_r 09/06/2018 11:54]
  • OFFLINE
    GiuseppeMN
    Post: 3.006
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 09/06/2018 11:48
    Buona giornata, sputnik_r;
    mi sembra di capire che hai risolto ma, perdonami, visto che già avevo eseguito alcuni test, mi permetto di proporti questa alternativa.

    Tre Pulsanti
    - Visualizza Dataset; consente di visualizzare tutti Record
    - Filtra Date duplicate; esegue un Filtro su tutte le date duplicate
    - Elimina Date duplicate

    Dopo aver attivato il Pulsante "Filtra Date duplicate" inserisci un Flag(un Carattere a tuo piacere) nella Colonna "I" della Data che, successivamente, vuoi eliminare.

    A questo punto, attivando il Pulsante "Elimina Date duplicate" consenti, solo ai Colleghi che hai autorizzato, di eliminare le Date selezionate; attualmente la password d'accesso alla Procedura è "123" che, ovviamente modificherai a tuo piacere.

    Option Explicit
    Const Psw As String = "123"
    
    Sub Visualizza_DataSet()
    Dim Nrc As Long
        
        Nrc = Range("B" & Rows.Count).End(xlUp).Row
            Columns("B:B").EntireRow.Hidden = False
        Cells(2, 2).Select
    End Sub
    
    Sub Filtra_Date_duplicate()
    Application.ScreenUpdating = False
    Dim Nrc As Long, x As Long
        
        Nrc = Range("B" & Rows.Count).End(xlUp).Row
            Call Visualizza_DataSet
                Range(Cells(4, 1), Cells(Nrc, 1)).EntireRow.Hidden = True
            For x = Nrc To 4 Step -1
                If Cells(x, 2).Value = Cells(x - 1, 2).Value Then Cells(x, 2).EntireRow.Hidden = False
            Next x
    Application.ScreenUpdating = True
    End Sub
    
    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
    Application.ScreenUpdating = True
    End Sub
    




    A disposizione.

    Buon fine settimana.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    sputnik_r
    Post: 68
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 09/06/2018 11:57
    Re:
    GiuseppeMN, 09/06/2018 11.48:

    Buona giornata, sputnik_r;
    mi sembra di capire che hai risolto ma, perdonami, visto che già avevo eseguito alcuni test, mi permetto di proporti questa alternativa.

    Tre Pulsanti
    - Visualizza Dataset; consente di visualizzare tutti Record
    - Filtra Date duplicate; esegue un Filtro su tutte le date duplicate
    - Elimina Date duplicate

    Dopo aver attivato il Pulsante "Filtra Date duplicate" inserisci un Flag(un Carattere a tuo piacere) nella Colonna "I" della Data che, successivamente, vuoi eliminare.

    A questo punto, attivando il Pulsante "Elimina Date duplicate" consenti, solo ai Colleghi che hai autorizzato, di eliminare le Date selezionate; attualmente la password d'accesso alla Procedura è "123" che, ovviamente modificherai a tuo piacere.

    Option Explicit
    Const Psw As String = "123"
    
    Sub Visualizza_DataSet()
    Dim Nrc As Long
        
        Nrc = Range("B" & Rows.Count).End(xlUp).Row
            Columns("B:B").EntireRow.Hidden = False
        Cells(2, 2).Select
    End Sub
    
    Sub Filtra_Date_duplicate()
    Application.ScreenUpdating = False
    Dim Nrc As Long, x As Long
        
        Nrc = Range("B" & Rows.Count).End(xlUp).Row
            Call Visualizza_DataSet
                Range(Cells(4, 1), Cells(Nrc, 1)).EntireRow.Hidden = True
            For x = Nrc To 4 Step -1
                If Cells(x, 2).Value = Cells(x - 1, 2).Value Then Cells(x, 2).EntireRow.Hidden = False
            Next x
    Application.ScreenUpdating = True
    End Sub
    
    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
    Application.ScreenUpdating = True
    End Sub
    




    A disposizione.

    Buon fine settimana.

    Giuseppe





    Buongiorno Giuseppe, in effetti credevo di aver risolto.


    Serviranno ancora prove e appena potrò proverò il tuo codice e mi piacerebbe capire con cosa entra in conflitto quello di Raffaele.


    Grazie a entrambi.

  • OFFLINE
    GiuseppeMN
    Post: 3.007
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 09/06/2018 17:45
    Buona sera, sputnik_r;
    riesco a risponderti solo ora.

    Ritenendo farti cosa gradita, allego il File con il quale ho condotto i miei Test.

    Nel File trovi solo due Fogli di lavoro:
    -    Base per Test; andrà eliminato alla fine dei Test
    -    Turnazione_Organico; il tuo reale Foglio di lavoro

    "Base per Test" mi è servito esclusivamente per riportare alle origini "Turnazione_Organico" e quindi poter eseguire nuovi Test.



    A disposizione.

    Buon fine settimana.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    sputnik_r
    Post: 69
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 10/06/2018 06:27
    Re:
    GiuseppeMN, 09/06/2018 17.45:

    Buona sera, sputnik_r;
    riesco a risponderti solo ora.

    Ritenendo farti cosa gradita, allego il File con il quale ho condotto i miei Test.

    Nel File trovi solo due Fogli di lavoro:
    -    Base per Test; andrà eliminato alla fine dei Test
    -    Turnazione_Organico; il tuo reale Foglio di lavoro

    "Base per Test" mi è servito esclusivamente per riportare alle origini "Turnazione_Organico" e quindi poter eseguire nuovi Test.



    A disposizione.

    Buon fine settimana.

    Giuseppe




    Buongiorno Giuseppe. Il tuo impegno e disponibilità meritano anche una levataccia...

    Sto provando. Ma posso giò stra-ringraziarti prima di provare. 
  • OFFLINE
    GiuseppeMN
    Post: 3.008
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 10/06/2018 06:44
    Buona giornata, sputnik_r;
    ti chiedo scusa per la "levataccia"!

    Ora sto uscendo rientrerò verso verso le 10:30; fai sapere se incontri difficoltà.



    A disposizione.

    Buon fine settimana.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    sputnik_r
    Post: 70
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 10/06/2018 06:53
    Beh, che dire Giuseppe???




    Semplicemente perfetto e velocissimo, l'ho provato anche con il mio file e tutti i dati all'interno... meglio di quel che volevo.

    Ho solo dovuto aggiungere questa riga perché il file è protetto.


    'Aggiunto perché con password non funziona
    ActiveSheet.Unprotect Password:="mia password"


    e in uscita


    ActiveSheet.Protect Password:="mia password"



    Non ho parole...
  • OFFLINE
    GiuseppeMN
    Post: 3.010
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 10/06/2018 07:08
    Buona giornata, sputnik_r;
    molto bene,considera solo che, nelle mie intenzioni, la Password era dichiarata come "Costante" in:
    Option Explicit
    Const Psw As String = "123"
    


    Voglio dire, modificando "123" con la tua Password dovrebbe funzionare senza aggiungere altre istruzioni.



    A disposizione.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    sputnik_r
    Post: 71
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 10/06/2018 07:09
    Infatti...non ho parole... anche per quanto mi girano



    Ha funzionato 2/3 volte sul mio file e adesso mi da questo errore...


    mentre sul tuo va benissimo.


  • OFFLINE
    sputnik_r
    Post: 72
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 10/06/2018 07:11
    Re:
    GiuseppeMN, 10/06/2018 07.08:

    Buona giornata, sputnik_r;
    molto bene,considera solo che, nelle mie intenzioni, la Password era dichiarata come "Costante" in:
    Option Explicit
    Const Psw As String = "123"
    


    Voglio dire, modificando "123" con la tua Password dovrebbe funzionare senza aggiungere altre istruzioni.



    A disposizione.

    Giuseppe





    allora lì sta il problema forse... sto dichiarando due password diverse.

    Vediamo un po'.

  • OFFLINE
    GiuseppeMN
    Post: 3.011
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 10/06/2018 07:16
    Considera solo che il mio File non era protetto; le modifiche che hai apportato si riferiscono ad un File protetto, cosa che non avevo considerato.

    Ovviamente i Codici VBA vanno protetti in lettura con Password; altrimenti i Colleghi potrebbero vedere la Password e bypassare facilmente il blocco previsto nel Codice VBA "Elimina_Date_duplicate".


    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    sputnik_r
    Post: 73
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 10/06/2018 07:23
    Re:
    GiuseppeMN, 10/06/2018 07.08:

    Buona giornata, sputnik_r;
    molto bene,considera solo che, nelle mie intenzioni, la Password era dichiarata come "Costante" in:
    Option Explicit
    Const Psw As String = "123"
    


    Voglio dire, modificando "123" con la tua Password dovrebbe funzionare senza aggiungere altre istruzioni.



    A disposizione.

    Giuseppe





    Cambiando quella da 123 a mia psw da sola non funziona, mettendo anche quelle che ho postato su per ogni istruzione pare di sì.


    Ma devo provare meglio

  • OFFLINE
    sputnik_r
    Post: 74
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 10/06/2018 07:34
    Re: Re:
    sputnik_r, 10/06/2018 07.23:





    Cambiando quella da 123 a mia psw da sola non funziona, mettendo anche quelle che ho postato su per ogni istruzione pare di sì.


    Ma devo provare meglio





    Allego immagine... praticamente è solo sta cavolo di protezione che rompe...


    E' protetto anche il progetto ma non credo sia la causa.
  • OFFLINE
    sputnik_r
    Post: 75
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 10/06/2018 10:35
    E non sono finiti i problemi...
    ...incredibile.



    Rimane anche il problema evidenziato per il codice di Raffaele.


    Come spiego nell'immagine allegata.

    La perdita delle formule e quindi dei riferimenti.





  • OFFLINE
    GiuseppeMN
    Post: 3.012
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 10/06/2018 10:37
    Buona giornata, sputnik_r;
    rieccomi.

    Il comando:
     ActiveSheet.Unprotect Password:="mia password" 

    va sempre insertito dopo:
     Call Visualizza_DataSet

    altrimenti il Codice "Visualizza_DataSet" protegge il Foglio di lavoro e quindi si presenta l'Errore che lamenti.

    Mi permetto di ricordarti che le Celle in Colonna "I" vanno sprotette altrimente non riesci a mettere i Flag sui Record da cancellare.

    Fai sapere se hai ancora problemi; potrei rimandarti il File corretto.



    A disposizione.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    GiuseppeMN
    Post: 3.013
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 10/06/2018 10:51
    Buona giornata, sputnik_r.

    @sputnik_r, in Risposta #26, scrive:

    E non sono finiti i problemi...
    ...incredibile.
    Rimane anche il problema evidenziato per il codice di Raffaele.
    Come spiego nell'immagine allegata.
    La perdita delle formule e quindi dei riferimenti.



    Mbè, visto che a me non accade ti rimando il File corretto; anche se in proposito nutro seri dubbi, non vorrei mai che il problema dipenda dalla Versione di Excel che utilizzi (Excel 2007) mentre io ho sviluppato la Procedura con Excel 2013.

    Per cortesia, fammi capire dove sbaglio; Grazie.



    A disposizione.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    sputnik_r
    Post: 76
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 10/06/2018 12:05
    Purtroppo sono con il tel ora e non vedo il file.

    Ma mi pare di ricordare che il tuo file non ha riferimenti continuativi e quindi non puoi vedere la perdita degli stessi.


    Per la password ho risolto scorporando il "mostra tutto" e "mostra solo senza formule"

    Così facendo mi pare il foglio rimanga sempre protetto.


    Molto utile è stato anche con una insignificante modifica utilizzare il tuo codice per nascondere solo i duplicati.

    Così posso consultare il calendario reale in ogni momento. Senza Giorni Duplicati.

    Auguro una buona Domenica a te e tutti. Io lavoro oggi. Sono la sq A.

    Ciao
  • OFFLINE
    GiuseppeMN
    Post: 3.016
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 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

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • 15MediaObject0,00557
1