Risultati da 1 a 26 di 26

Discussione: Protezione foglio Excel con macro che filtra automaticamente



  1. #1
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Protezione foglio Excel con macro che filtra automaticamente

    Buongiorno a tutti, per cortesia mi potreste aiutare a capire se esiste un modo per proteggere il foglio2 del file esempio in allegato che viene filtrato automaticamente da una macro in base alla selezione fatta nel campo B2 del foglio1?Avrei necessità che il foglio2 non potesse essere modificato in nessuno dei campi visualizzati, ma che la macro funzioni e filtri automaticamente.Non vorrei dover togliere la protezione perché altrimenti il rischio è che mi modifichino i dati presenti sul foglio2 (nel file originale sono molte più righe e molte più colonne), ho fatto diverse prove, ma ogni volta che attivo la protezione sul foglio la macro non filtra più automaticamente, per favore mi date una mano?Grazie mille ciao----------Post unito in automatico----------Scusate avevo scordato di allegare il file
    Citazione Originariamente Scritto da Daniela Visualizza Messaggio
    Buongiorno a tutti, per cortesia mi potreste aiutare a capire se esiste un modo per proteggere il foglio2 del file esempio in allegato che viene filtrato automaticamente da una macro in base alla selezione fatta nel campo B2 del foglio1?Avrei necessità che il foglio2 non potesse essere modificato in nessuno dei campi visualizzati, ma che la macro funzioni e filtri automaticamente.Non vorrei dover togliere la protezione perché altrimenti il rischio è che mi modifichino i dati presenti sul foglio2 (nel file originale sono molte più righe e molte più colonne), ho fatto diverse prove, ma ogni volta che attivo la protezione sul foglio la macro non filtra più automaticamente, per favore mi date una mano?Grazie mille ciao
    File Allegati File Allegati

  2. #2

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6795
    Versione Office
    2013
    Likes ricevuti
    718
    Likes dati
    164

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Ciao Daniela

    Il file non risulta allegato.

    Riprova.

    Alfredo

  3. #3
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    ora dovrebbe vedersi, grazie ciao
    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Ciao DanielaIl file non risulta allegato.Riprova.Alfredo

  4. #4
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Protezione foglio Excel con macro che filtra automaticamente

    @alfrimpa (Ciao)

    Se non erro selezioni tutto il foglio, Formatto celle
    I due quadratini devono esssere bianchi
    Selezioni solo la Tabella, Formatto celle
    Metti la spunta sul primo quadratino
    Revisione /proteggi foglio, spunta sulle prime due e più in basso usa filtro Automatico

  5. #5

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6795
    Versione Office
    2013
    Likes ricevuti
    718
    Likes dati
    164

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Ciao Daniela

    Ho cominciato a guardare il file ed ho notato come prima cosa che questa macro

    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim i As Integer, var1(1 To 5) As Variant, var2(1 To 5) As Variant
    Dim vr As Integer, risp As Integer, rg As Long
    If Not Intersect(Target, Range("G7:G8")) Is Nothing Then
        For i = 1 To 5
            var1(i) = Cells(7, i + 1)
            var2(i) = Cells(8, i + 1)
        Next i
        For i = 1 To 5
            If var1(i) = 0 Then vr = vr + 1
            If var2(i) = 0 Then vr = vr + 1
        Next i
        If vr = 10 Then
            MsgBox "Nessuna variazione da apportare", 0, "Avviso"
            Exit Sub
        Else
            risp = MsgBox("Le variazioni saranno sovrascritte." & vbLf & _
                "Vuoi continuare?", 4 + 32, "Domanda")
            If risp = 7 Then Exit Sub 'risposta no
            'risposta si, cerca la riga codice cliente
            With Sheets(2)
            rg = Application.WorksheetFunction.Match(Cells(2, 2), .Range("A2:A30"), 0) + 1
            If var1(1) <> "" Then .Cells(rg, 5) = var1(1)
            If var2(1) <> "" Then .Cells(rg, 6) = var2(1)
            If var1(2) <> "" Then .Cells(rg, 11) = var1(2)
            If var2(2) <> "" Then .Cells(rg, 12) = var2(2)
            If var1(3) <> "" Then .Cells(rg, 17) = var1(3)
            If var2(3) <> "" Then .Cells(rg, 18) = var2(3)
            If var1(4) <> "" Then .Cells(rg, 23) = var1(4)
            If var2(4) <> "" Then .Cells(rg, 24) = var2(4)
            If var1(5) <> "" Then .Cells(rg, 29) = var1(5)
            If var2(5) <> "" Then .Cells(rg, 30) = var2(5)
            End With
            Range("B7:F8").ClearContents
            MsgBox "Variazione registrata con successo."
        End If
    End If
    End Sub
    è inserita in un modulo standard anziché, trattandosi di una procedura evento (Worksheet_SelectionChange), nel modulo del foglio interessato.

    Stando in un modulo standard questa macro non può funzionare al cambio della selezione sul foglio.

    Alfredo

    ----------Post unito in automatico----------

    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    @alfrimpa (Ciao)

    Se non erro selezioni tutto il foglio, Formatto celle
    I due quadratini devono esssere bianchi
    Selezioni solo la Tabella, Formatto celle
    Metti la spunta sul primo quadratino
    Ciao Raffaele, puoi spiegarmi meglio questa perché non l'ho capita? Grazie

    Alfredo

  6. #6
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Grazie Raffaele, ma purtroppo così non funziona, era una delle diverse prove che ho tentato di fare, ma la macro non va più
    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    @alfrimpa (Ciao)Se non erro selezioni tutto il foglio, Formatto celleI due quadratini devono esssere bianchiSelezioni solo la Tabella, Formatto celleMetti la spunta sul primo quadratinoRevisione /proteggi foglio, spunta sulle prime due e più in basso usa filtro Automatico
    ----------Post unito in automatico----------

    Ciao Alfredo, la macro che hai visto tu che è nel modulo funziona cliccando su "Registra variazioni" presente su Foglio1, mentre quella che voglio che funzioni è il change presente su foglio1 che deve funzionare anche se proteggo Foglio2grazie :-)Private Sub Worksheet_Change(ByVal Target As Range)Application.EnableEvents = FalseOn Error Resume NextIf Target.Address = Me.Range("b2").Address ThenIf Target = Empty ThenWorksheets("Foglio2").Range("A1").AutoFilter Field:=1ElseWorksheets("Foglio2").Range("A1").AutoFilter Field:=1, _Criteria1:=Me.Range("B2").ValueEnd IfEnd IfApplication.EnableEvents = TrueEnd Sub
    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Ciao DanielaHo cominciato a guardare il file ed ho notato come prima cosa che questa macro
    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim i As Integer, var1(1 To 5) As Variant, var2(1 To 5) As VariantDim vr As Integer, risp As Integer, rg As LongIf Not Intersect(Target, Range("G7:G8")) Is Nothing Then    For i = 1 To 5        var1(i) = Cells(7, i + 1)        var2(i) = Cells(8, i + 1)    Next i    For i = 1 To 5        If var1(i) = 0 Then vr = vr + 1        If var2(i) = 0 Then vr = vr + 1    Next i    If vr = 10 Then        MsgBox "Nessuna variazione da apportare", 0, "Avviso"        Exit Sub    Else        risp = MsgBox("Le variazioni saranno sovrascritte." & vbLf & _            "Vuoi continuare?", 4 + 32, "Domanda")        If risp = 7 Then Exit Sub 'risposta no        'risposta si, cerca la riga codice cliente        With Sheets(2)        rg = Application.WorksheetFunction.Match(Cells(2, 2), .Range("A2:A30"), 0) + 1        If var1(1)  "" Then .Cells(rg, 5) = var1(1)        If var2(1)  "" Then .Cells(rg, 6) = var2(1)        If var1(2)  "" Then .Cells(rg, 11) = var1(2)        If var2(2)  "" Then .Cells(rg, 12) = var2(2)        If var1(3)  "" Then .Cells(rg, 17) = var1(3)        If var2(3)  "" Then .Cells(rg, 18) = var2(3)        If var1(4)  "" Then .Cells(rg, 23) = var1(4)        If var2(4)  "" Then .Cells(rg, 24) = var2(4)        If var1(5)  "" Then .Cells(rg, 29) = var1(5)        If var2(5)  "" Then .Cells(rg, 30) = var2(5)        End With        Range("B7:F8").ClearContents        MsgBox "Variazione registrata con successo."    End IfEnd IfEnd Sub
    è inserita in un modulo standard anziché, trattandosi di una procedura evento (Worksheet_SelectionChange), nel modulo del foglio interessato.Stando in un modulo standard questa macro non può funzionare al cambio della selezione sul foglio.Alfredo----------Post unito in automatico----------Ciao Raffaele, puoi spiegarmi meglio questa perché non l'ho capita? GrazieAlfredo

  7. #7
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Mi spiego meglio
    Selezioni tutto il foglio, tramite la cella sopra A1
    Formatto celle/Protezione
    I due quadratini devono esssere bianchi
    Selezioni solo la Tabella, Formatto celle/Protezione
    Metti la spunta sul primo quadratino (bloccata)
    Excel/Revisione/proteggi foglio, mettere la spunta sulle prime due
    Selezione celle bloccate
    Seleziona celle sboccate
    e più in basso usa filtro Automatico e premere OK
    Il filtro funziona e non può modificare i dati dell tabella.
    Se volete riallego, però provate a farlo Voi

    Ps La macro funziona, ma prima devi sboccare foglio2 e dopo riproteggerlo
    Sheets("Foglio2").Unprotect
    Sheets("Foglio2").Protect

  8. #8

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6795
    Versione Office
    2013
    Likes ricevuti
    718
    Likes dati
    164

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Daniela cliccando su G7/G8 non succede nulla.

    Quella macro va messa nel modulo di classe del foglio1 altrimenti non funziona.

    Nell'editor di VBA nella finestra di progetto in alto a sx fai doppio clic su Foglio1 e nella finestra a destra incolla la macro.

    Alfredo

  9. #9
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Grazie, scusa ma non conosco bene VBA dove devo mettere nella macro le due istruzioni che mi hai indicato?Di fatto se non ho capito male, sblocca e riblocca automaticamente dopo aver filtrato automaticamente? ma come fa a sapere la password? non posso proteggerlo senza altrimenti la toglierebbero senza problemigrazie
    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    Mi spiego meglioSelezioni tutto il foglio, tramite la cella sopra A1Formatto celle/ProtezioneI due quadratini devono esssere bianchiSelezioni solo la Tabella, Formatto celle/ProtezioneMetti la spunta sul primo quadratino (bloccata)Excel/Revisione/proteggi foglio, mettere la spunta sulle prime due Selezione celle bloccateSeleziona celle sboccatee più in basso usa filtro Automatico e premere OKIl filtro funziona e non può modificare i dati dell tabella.Se volete riallego, però provate a farlo VoiPs La macro funziona, ma prima devi sboccare foglio2 e dopo riproteggerloSheets("Foglio2").UnprotectSheets("Foglio2").Protect
    ----------Post unito in automatico----------

    Grazie per la tua segnalazione, ma la macro sul foglio originale molto più complesso e pesante funziona, può essere che su questo dell'esempio abbia dei problemi, ma il mio problema non è quella macro che potrei anche eliminare, bensì è capire come proteggere il foglio2 ma permettendo il funzionamento del change che deve filtrare automaticamente i dati di Foglio2 in base a quanto selezionato nella convalida dati di Foglio1Grazie comunque per l'aiuto che mi volevi dare :-)
    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Daniela cliccando su G7/G8 non succede nulla.Quella macro va messa nel modulo di classe del foglio1 altrimenti non funziona.Nell'editor di VBA nella finestra di progetto in alto a sx fai doppio clic su Foglio1 e nella finestra a destra incolla la macro.Alfredo

  10. #10
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Esempio per foglio1
    Ps. Non è giusto mettere Sub Worksheet_SelectionChange dentro un MODULO (devi metterlo nel foglio dove deve lavorare)

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Sheets("Foglio2").Unprotect Password:="Password"
    On Error Resume Next
    If Target.Address = Me.Range("b2").Address Then
    If Target = Empty Then
    Worksheets("Foglio2").Range("A1").AutoFilter Field:=1
    Else
    Worksheets("Foglio2").Range("A1").AutoFilter Field:=1, _
    Criteria1:=Me.Range("B2").Value
    End If
    End If
    Sheets("Foglio2").Protect Password:="Password"
    Application.EnableEvents = True
    End Sub

  11. #11
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    ma il Change non è nel modulo è su Foglio1, in ogni caso ho fatto come mi hai indicato sul file originale e funziona, GRAZIE!!!!!
    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    Esempio per foglio1Ps. Non è giusto mettere Sub Worksheet_SelectionChange dentro un MODULO (devi metterlo nel foglio dove deve lavorare)
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)Application.EnableEvents = FalseSheets("Foglio2").Unprotect Password:="Password"On Error Resume NextIf Target.Address = Me.Range("b2").Address ThenIf Target = Empty ThenWorksheets("Foglio2").Range("A1").AutoFilter Field:=1ElseWorksheets("Foglio2").Range("A1").AutoFilter Field:=1, _Criteria1:=Me.Range("B2").ValueEnd IfEnd IfSheets("Foglio2").Protect Password:="Password"Application.EnableEvents = TrueEnd Sub

  12. #12
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Scusa, intendevo Worksheet_SelectionChange

  13. #13

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Un saluto a tutti:
    @Daniela, #Raffaele_53 e @alfrimpa (che saluto), vogliono dire che la macro nel foglio1 "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" è una macro ad Evento e non si attiverà mai con alcun evento se rimane nel Modulo1. Si attiverà con l'evento "SelectionChange" solo se è su un modulo di classe.

    Per quanto riguarda la protezione del Foglio 2, basta mettere nel Modulo di classe "ThisWorkbook" questo evento:
    Codice: 
    Private Sub Workbook_Open()
    Foglio2.Protect Password:="123", userinterfaceonly:=True
    End Sub
    che bloccherà per il solo operatore (non per i comandi VBA) il foglio2 all'apertura del file con la password "123"

  14. #14
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Ciao Rubik72, grazie per il tuo intervento, finalmente ho capito a quale istruzione vi riferite, pensavo parlaste delle istruzioni presenti sul Foglio1, la macro presente nel modulo è rimasta quella suggerita da un altro utente che però poi un amico mi ha modificato togliendo la frase che mi segnalate voi, scusate se non l'ho aggiornata, ma siccome il mio problema non era riferito a quella macro non ci ho pensato. In compenso ora ho un altro problema, con le istruzioni suggeritemi da Raffaele che tolgono e mettono la protezione, quando viene rimessa la macro non tiene conto del fatto che tra le opzioni deve essere previsto l'uso dei filtri da parte degli operatori anche manualmente, come faccio a farglielo applicare tramite macro? E' possibile? scusate ma sono veramente ignorante :-( grazie mille, siete stati veramente gentili!

  15. #15

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Usa la routine scritta al #13, così non ci sarà bisogno di attivare e disattivare la protezione

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  16. #16
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Grazie!, ma devo però togliere dal Change del Foglio1 le istruzioni relativa allo sblocco della protezione e alla riattivazione della stessa?
    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Usa la routine scritta al #13, così non ci sarà bisogno di attivare e disattivare la protezione Inviato dal mio GT-I9301I utilizzando Tapatalk

  17. #17

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Devi scrivere nel modulo di classe "ThisWorkbook" la routine al post #13, chiudi e riapri il file

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  18. #18
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    fatto, in effetti all'apertura il foglio2 si protegge automaticamente, ma non mi permette di utilizzare poi il filtro manualmente sulle colonne, è possibile nella macro dare indicazioni in tal senso quando applica il blocco?
    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Devi scrivere nel modulo di classe "ThisWorkbook" la routine al post #13, chiudi e riapri il file Inviato dal mio GT-I9301I utilizzando Tapatalk

  19. #19

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Avevi chiesto che il filtro si attivasse tramite macro del Foglio1!?!
    Oppure ho capito male io

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  20. #20
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Entrambe le cose, il filtro che si attiva con la macro deve filtrare in base al codice selezionato nella convalida dati, ma poi su Foglio2 l'operatore deve poter filtrare liberamente e manualmente le altre colonne, questo perché nel file originale molto più complesso a un codice corrispondono dalle 400 righe in su e quindi potrebbero voler filtrare per altre colonne
    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Avevi chiesto che il filtro si attivasse tramite macro del Foglio1!?! Oppure ho capito male ioInviato dal mio GT-I9301I utilizzando Tapatalk

  21. #21
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Scusa, la soluzione data non Ti funziona? Mi spieghi
    >>>non tiene conto del fatto che tra le opzioni deve essere previsto l'uso dei filtri da parte degli operatori anche manualmente
    Per me, ogni utente può usare il filtro.
    Casomai allega nuovamente il file che hai creato.

  22. #22
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Ciao Raffaele, no purtroppo non funziona, mi spiego meglio,dopo aver protetto i fogli come mi hai indicato e aver selezionato l’opzione “usafiltro automatico”, se vado sul Foglio2 tutti i filtri sono attivi e le celle bloccate,ma appena nel Foglio1 nel campo B2 seleziono un codice, la macro toglie laprotezione al Foglio2, filtra la colonna A in base al valore di B2 del Foglio1e rimette la protezione al Foglio2, ma quando la rimette non tiene conto dell’opzione“usa filtro automatico” e pertanto i filtri non sono più gestibili manualmente.Non so proprio come risolvere questo problema, ieri ci ho provato tutto ilgiorno, ma non sono in grado , allego il file, lo trovi nella situazione di partenza (filtriattivi manualmente su Foglio2 che è protetto). Grazie mille.




    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    Scusa, la soluzione data non Ti funziona? Mi spieghi
    >>>non tiene conto del fatto che tra le opzioni deve essere previsto l'uso dei filtri da parte degli operatori anche manualmente
    Per me, ogni utente può usare il filtro.
    Casomai allega nuovamente il file che hai creato.
    File Allegati File Allegati

  23. #23
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Protezione foglio Excel con macro che filtra automaticamente

    La mia proposta è questa (sempre da provare):
    1) metti in foglio1 cella B2 (formatto generale e non numero)
    Cambiare il codice con questo, se funziona alla fine togli la 2 riga e riabilita la 4
    Codice: 
     Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "ciao, premi CTRL+ALT+PAUSE e dopo DEBUG, piano piano premi F8 se corrisponde ai desideri "
    If Not Intersect(Target, Range("B2")) Is Nothing Then
    'Application.EnableEvents = False 'riattiva quest riga alla fine
    Sheets("Foglio2").Unprotect Password:="a"
        If Not Target.Offset(0, 0) = "" Then
            Dim sh As Worksheet: Set sh = Sheets("Foglio2") 'da cambiare asomai
            With sh
                Dim Ur
                Ur = .Range("A" & Rows.Count).End(xlUp).Row
                If .FilterMode = True Then
                    .Range("A1").AutoFilter
                    .Range("A1:AE" & Ur).AutoFilter Field:=1, Criteria1:=Sheets("Foglio1").Range("B2")
                ElseIf .FilterMode = False Then
                    .Range("A1").AutoFilter
                    .Range("A1:AE" & Ur).AutoFilter Field:=1, Criteria1:=Sheets("Foglio1").Range("B2")
                End If
            End With
            Set sh = Nothing
        End If
    End If
    Sheets("Foglio2").Protect Password:="a"
    Sheets("Foglio2").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
    End Sub
    Ps mi sono dimenticato che il foglio2 non hai salvato con passord =a
    Aspetta, qualcosa non và, aadesso con l'ultima modifica "sembra funzionare". Fammi sapere

    ----------Post unito in automatico----------

    allegato
    File Allegati File Allegati

  24. #24
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Grazie Raffele del tuo aiuto, ma ora funziona il filtro di Foglio2 manualmente, ma non funziona più il filtro automatico in base a quanto selezionato nella convalida dati di Foglio 1 :-(

    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    La mia proposta è questa (sempre da provare):
    1) metti in foglio1 cella B2 (formatto generale e non numero)
    Ps mi sono dimenticato che il foglio2 non hai salvato con passord =a
    Aspetta, qualcosa non và, aadesso con l'ultima modifica "sembra funzionare". Fammi sapere]

    ----------Post unito in automatico----------

    allegato

  25. #25
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Forse non ho capito bene, ho modificato alcune cose. Tolto lo sfarfalio del monitor, messo una riga che mi ero dimenticato e spostato alcune.
    Ho rifatto la protezione (nel futuro magari in foglio2 ci saranno più righe)
    Nel foglio2, selezionato la cella sopra A1, formatto celle/Protezione le due caselle devono essere n'è spuntate n'è color grigio (solo bianche)
    Seleziono le colonne A:AE, formatto celle/Protezione e metto la spunta alla prima riga in alto
    Proteggo il foglio2 con Password = a, spunto le prime due righe + usa filtro automtico (ripeto Password = a)
    A questo punto, anche con nuove righe sarà protetto.
    Vado in foglio1 metto un numero in B2, il codice va sul foglio2, toglie la protezione,filtra e rimette la protezione.
    In tutti i casi nel foglio2 posso usare ancora i filtri
    Mi sembra che era questo che desideravi.
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B2")) Is Nothing Then
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Sheets("Foglio2").Unprotect Password:="a"
        If Not Target.Offset(0, 0) = "" Then
            Dim sh As Worksheet: Set sh = Sheets("Foglio2") 'da cambiare asomai
            Dim Ur
            With sh
                If .FilterMode = True Then
                    .Range("A1").AutoFilter Field:=1
                    Ur = .Range("A" & Rows.Count).End(xlUp).Row
                    .Range("A1:AE" & Ur).AutoFilter Field:=1, Criteria1:=Sheets("Foglio1").Range("B2")
                ElseIf .FilterMode = False Then
                    Ur = .Range("A" & Rows.Count).End(xlUp).Row
                    .Range("A1:AE" & Ur).AutoFilter Field:=1, Criteria1:=Sheets("Foglio1").Range("B2")
                End If
            End With
            Set sh = Nothing
        End If
    End If
    Sheets("Foglio2").Protect Password:="a", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    End Sub

  26. #26
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Protezione foglio Excel con macro che filtra automaticamente

    Raffaele, perdonami se non sono più riuscita a collegarmi e verificare quanto mi hai gentilmente indicato, sono riuscita a farlo solo adesso, sei stato eccezionale, grazie! Funziona tutto che è una meraviglia

    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    Forse non ho capito bene, ho modificato alcune cose. Tolto lo sfarfalio del monitor, messo una riga che mi ero dimenticato e spostato alcune.
    Ho rifatto la protezione (nel futuro magari in foglio2 ci saranno più righe)
    Nel foglio2, selezionato la cella sopra A1, formatto celle/Protezione le due caselle devono essere n'è spuntate n'è color grigio (solo bianche)
    Seleziono le colonne A:AE, formatto celle/Protezione e metto la spunta alla prima riga in alto
    Proteggo il foglio2 con Password = a, spunto le prime due righe + usa filtro automtico (ripeto Password = a)
    A questo punto, anche con nuove righe sarà protetto.
    Vado in foglio1 metto un numero in B2, il codice va sul foglio2, toglie la protezione,filtra e rimette la protezione.
    In tutti i casi nel foglio2 posso usare ancora i filtri
    Mi sembra che era questo che desideravi.
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B2")) Is Nothing Then
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Sheets("Foglio2").Unprotect Password:="a"
        If Not Target.Offset(0, 0) = "" Then
            Dim sh As Worksheet: Set sh = Sheets("Foglio2") 'da cambiare asomai
            Dim Ur
            With sh
                If .FilterMode = True Then
                    .Range("A1").AutoFilter Field:=1
                    Ur = .Range("A" & Rows.Count).End(xlUp).Row
                    .Range("A1:AE" & Ur).AutoFilter Field:=1, Criteria1:=Sheets("Foglio1").Range("B2")
                ElseIf .FilterMode = False Then
                    Ur = .Range("A" & Rows.Count).End(xlUp).Row
                    .Range("A1:AE" & Ur).AutoFilter Field:=1, Criteria1:=Sheets("Foglio1").Range("B2")
                End If
            End With
            Set sh = Nothing
        End If
    End If
    Sheets("Foglio2").Protect Password:="a", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    End Sub

Discussioni Simili

  1. [Risolto] Macro filtra per testo
    Di simone90 nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 07/12/16, 02:14
  2. Risposte: 6
    Ultimo Messaggio: 21/10/16, 20:47
  3. Excel password per protezione foglio di lavoro all'interno di una cartella
    Di graziano nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 02/10/16, 15:00
  4. protezione foglio di lavoro Excel 2013
    Di sergi0 nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 14/03/16, 16:30
  5. EM5 FATTURA con excel e PROTEZIONE FOGLIO CERCA VERTICALE
    Di Maxforla nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 19/06/15, 20:31

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •