Excel consente di proteggere e rimuovere la protezione dei fogli di lavoro. Lo scopo, ovviamente, è quello di consentire ad altri di utilizzare la tua cartella di lavoro, ma non di modificare determinate celle all’interno di ogni foglio di lavoro.

Poiché la protezione viene eseguita a livello di foglio di lavoro, può essere difficile passare attraverso ogni foglio di lavoro in una cartella di lavoro e proteggerli o non proteggerli. Se si dispone di 25 fogli di lavoro, è necessario attivare ogni foglio di lavoro, eseguire la protezione o la rimozione della protezione e passare a quello successivo.

Un metodo meno dispendioso in termini di tempo per proteggere ogni foglio di lavoro in una cartella di lavoro consiste nell’utilizzare una macro per svolgere il lavoro effettivo. La seguente macro farà il trucco:

Sub ProtectAllSheets()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

For Each ws In Worksheets         ws.Select         ws.Protect Password:="Password"

Next ws

Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

La macro per rimuovere la protezione da tutti i fogli di lavoro è solo leggermente diversa:

Sub UnProtectAllSheets()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

For Each ws In Worksheets         ws.Select         ws.Unprotect Password:="Password"

Next ws

Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

Sebbene queste macro funzioneranno perfettamente, ci sono un paio di avvertenze.

Innanzitutto, è necessario assicurarsi che la variabile Password in ogni macro sia impostata sulla password corretta per i fogli di lavoro. (Ciò presuppone, ovviamente, che tutti i fogli di lavoro utilizzino lo stesso passwords.)

La seconda avvertenza è che poiché la macro deve includere la password, la sicurezza complessiva della cartella di lavoro potrebbe essere compromessa: chiunque sia in grado di visualizzare le macro saprà quali sono le password per le cartelle di lavoro.

Come soluzione a quest’ultimo problema, potresti modificare le macro in modo che chiedano una password da utilizzare nel loro lavoro. La seguente sarebbe la versione della macro che protegge i fogli di lavoro:

Sub ProtectAllSheetsPass()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String     Dim sPWord As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

sPWord = InputBox("What password?", "Protect All")

If sPWord > "" Then         For Each ws In Worksheets             ws.Select             ws.Protect Password:=sPWord         Next ws     End If     Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

La macro visualizza una casella di input che richiede la password. La stessa password viene quindi utilizzata per proteggere ogni foglio di lavoro nella cartella di lavoro. Lo stesso tipo di modifica può essere apportata alla macro che rimuove la protezione di tutti i fogli di lavoro.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (13075) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia del menu precedente di Excel qui: