Disattivare/attivare password su più fogli

Anonimo
2010-10-20T13:30:08+00:00

Si può con un comando unico disattivare/attivare la password su più fogli della stassa cartella? la psw ovviamente è la stessa per tutti i fogli protetti. Vorrei evitare di ripetere in ogni macro tutti i passaggi per disattivare/attivare psw dei fogli interessati. Grazie mille e un saluto a tutti.

Ciao

Antonio

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-10-21T07:03:09+00:00

Si può con un comando unico disattivare/attivare la password su più fogli della stassa cartella? la psw ovviamente è la stessa per tutti i fogli protetti. Vorrei evitare di ripetere in ogni macro tutti i passaggi per disattivare/attivare psw dei fogli interessati. Grazie mille e un saluto a tutti.

Ciao

Antonio

In un modulo standard:

Public Sub mMettiPassword()

    Dim sh As Worksheet

    For Each sh In ThisWorkbook.Worksheets

        sh.Protect Password:="tuaPassword"

    Next

    Set sh = Nothing

End Sub

Public Sub mTogliPassword()

    Dim sh As Worksheet

    For Each sh In ThisWorkbook.Worksheets

        sh.Unprotect Password:="tuaPassword"

    Next

    Set sh = Nothing

End Sub

Aggiungo: quanto sopra lo fa *per tutti i fogli*. Se nel tuo workbook(file) hai solo alcuini fogli da proteggere/sproteggere contemporaneamente, vedi qui sotto:

Public Sub mMettiProtezione()

    Dim shArray As Sheets

    Dim sh As Worksheet

On Error GoTo RigaErrore

    Set shArray = Worksheets(Array("Foglio2", "Foglio5"))

    For Each sh In shArray

        sh.Protect Password:="tuaPassword"

    Next

RigaChiusura:

    Set shArray = Nothing

    Exit Sub

RigaErrore:

    MsgBox Err.Number & vbNewLine & Err.Description

    Resume RigaChiusura

End Sub

Public Sub mTogliProtezione()

    Dim shArray As Sheets

    Dim sh As Worksheet

On Error GoTo RigaErrore

    Set shArray = Worksheets(Array("Foglio2", "Foglio5"))

    For Each sh In shArray

        sh.Unprotect Password:="tuaPassword"

    Next

RigaChiusura:

    Set shArray = Nothing

    Exit Sub

RigaErrore:

    MsgBox Err.Number & vbNewLine & Err.Description

    Resume RigaChiusura

End Sub

Cambia i riferimenti ai nomi dei fogli(nell'esempio Foglio2 e Foglio5) dell'array con i tuoi. Fai sapere se risolvi, grazie.


--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu/

La risposta è stata utile?

0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-10-21T12:16:28+00:00

    Ciao Mauro, scusa se ritorno sull'argomento, ho provato sul file originale:

    Public Sub mMettiPassword()

        Dim sh As Worksheet

        For Each sh In ThisWorkbook.Worksheets

            sh.Protect Password:="MiaPassword"

        Next

        Set sh = Nothing

    End Sub

    Public Sub mTogliPassword()

        Dim sh As Worksheet

        For Each sh In ThisWorkbook.Worksheets

            sh.Unprotect Password:="MiaPassword"

        Next

        Set sh = Nothing

    End Sub

    e mi và in errore in tutte le macro dove ho la riga:

    Selection.AutoFilter

    è un problema della protezione che non consente l'utilizzo del filtro automatico o è sbagliata la sintassi che utilizzo io? Tipo:

    Sheets("Archivio").Select

    Columns("C:C").Select

    Selection.AutoFilter

    Selection.AutoFilter Field:=1, Criteria1:=Me.TextBox1

    '.. eccetera ...

    Ti ringrazio e un saluto.

    Ciao

    Antonio

    Se(se) ho capito, prova a modificare così la macro mMettiPassword:

    Public Sub mMettiPassword()

        Dim sh As Worksheet

        For Each sh In ThisWorkbook.Worksheets

            sh.Protect Password:="MiaPassword", _

                AllowFiltering:=True

        Next

        Set sh = Nothing

    End Sub

    Nota. Se(se) necessiti di altre cose permesse a foglio protetto, avvia il registratore macro, proteggi il foglio selezionando le cose che vuoi siano possibili a foglio protetto, stoppa la macro e vedi quali parametri aggiungere a Protect. Poi, se hai bisogno, siamo(quasi) sempre qui.


    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-10-21T10:57:31+00:00

    Ciao Mauro, scusa se ritorno sull'argomento, ho provato sul file originale:

    Public Sub mMettiPassword()

        Dim sh As Worksheet

        For Each sh In ThisWorkbook.Worksheets

            sh.Protect Password:="MiaPassword"

        Next

        Set sh = Nothing

    End Sub

    Public Sub mTogliPassword()

        Dim sh As Worksheet

        For Each sh In ThisWorkbook.Worksheets

            sh.Unprotect Password:="MiaPassword"

        Next

        Set sh = Nothing

    End Sub

    e mi và in errore in tutte le macro dove ho la riga:

    Selection.AutoFilter

    è un problema della protezione che non consente l'utilizzo del filtro automatico o è sbagliata la sintassi che utilizzo io? Tipo:

    Sheets("Archivio").Select

    Columns("C:C").Select

    Selection.AutoFilter

    Selection.AutoFilter Field:=1, Criteria1:=Me.TextBox1

    '.. eccetera ...

    Ti ringrazio e un saluto.

    Ciao

    Antonio

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-10-21T09:40:35+00:00

    Ciao mauro e grazie dell'aiuto, penso che adotterò la prima soluzione, per ora tutti i fogli sono protetti, diversamente ricorrerò alal seconda. Ciao e buona giornata.

    Ciao

    Antonio

    Grazie a te per il cortese riscontro. Buon lavoro.


    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-10-21T09:28:49+00:00

    Ciao mauro e grazie dell'aiuto, penso che adotterò la prima soluzione, per ora tutti i fogli sono protetti, diversamente ricorrerò alal seconda. Ciao e buona giornata.

    Ciao

    Antonio

    La risposta è stata utile?

    0 commenti Nessun commento