Come impostare una password per proteggere singoli fogli di lavoro destinati a utenti diversi in Excel?
In Excel è possibile impostare password diverse per fogli di lavoro distinti, consentendo a un utente di modificare un foglio con una password e a un altro di modificarne uno diverso con una password differente. Tuttavia, in alcuni casi si desidera che ciascun utente possa visualizzare e accedere esclusivamente al proprio foglio. È possibile ottenere questo risultato in Excel?
Per proteggere ogni foglio di lavoro singolarmente e limitare l'accesso ai fogli da parte degli utenti, applicare il codice VBA seguente:
1. Apri una nuova cartella di lavoro e crea un foglio denominato «Main», come mostrato nello screenshot:

2. Premere quindi i tasti «Alt» + «F11» per aprire la finestra «Microsoft Visual Basic for Applications», fare doppio clic su «ThisWorkbook» nel riquadro sinistro «Project-VBAProject» per aprire un modulo di codice vuoto, quindi copiare e incollare il seguente codice VBA nella finestra del codice (vedere screenshot):
Codice VBA: Impostare password per proteggere singoli fogli in base agli utenti
Option Explicit
Dim gUserName As String
Dim gUserPass As String
Private Sub Workbook_Open()
'Updateby ExtendOffice
Dim xWShs As Sheets
Dim xWSh As Worksheet
Dim xUserName As String
Dim xPass As String
Dim xBolH As Boolean
GTINPUT:
xUserName = InputBox("Enter the user name")
If TypeName(xUserName) = "String" Then
If xUserName = "" Then
Exit Sub
End If
End If
xUserName = LCase(xUserName)
xPass = InputBox("User name:" & xUserName & Chr(13) & Chr(10) & "Enter the password:")
If TypeName(xPass) = "String" Then
If xPass = "" Then
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End If
Else
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End If
Set xWShs = Worksheets
xBolH = False
For Each xWSh In Worksheets
If xWSh.Name = xUserName Then
xBolH = True
Exit For
End If
Next
If xBolH Then
Set xWSh = xWShs(xUserName)
On Error GoTo GTINPUT2
xWSh.Unprotect (xPass)
xWSh.Visible = True
xWSh.Activate
Else
Set xWSh = xWShs.Add
xWSh.Name = xUserName
xWSh.Activate
End If
gUserName = xUserName
gUserPass = xPass
Exit Sub
GTINPUT2:
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xWSh As Worksheet
On Error Resume Next
Set xWSh = Worksheets(gUserName)
xWSh.Protect Password:=gUserPass, DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
For Each xWSh In Worksheets
If xWSh.Name <> "Main" Then
xWSh.Visible = xlSheetVeryHidden
End If
Next xWSh
ActiveWorkbook.Save
End Sub

3. Posizionare quindi il cursore alla fine dello script «Private Sub Workbook_Open()» e premere il tasto «F5» per eseguire il codice. Nella finestra di dialogo che appare, inserire il nome utente per il quale si desidera creare un foglio (vedere screenshot).

4. Fare quindi clic sul pulsante «OK» e, nella finestra di dialogo successiva, inserire una password per proteggere il foglio (vedere screenshot).

5. Fare clic sul pulsante «OK»: verrà immediatamente creato un nuovo foglio denominato Nome utente, in cui sarà possibile inserire i dati necessari per quell’utente. Vedere screenshot:

6. Ripeti i passaggi da 3 a 5 indicati sopra per creare uno alla volta gli altri fogli desiderati.
7. Dopo aver creato i fogli, salvare la cartella di lavoro corrente facendo clic su «File» > «Salva con nome». Nella finestra di dialogo «Salva con nome», specificare un nome file e selezionare il formato «Cartella di lavoro abilitata alle macro di Excel (*.xlsm)» dall’elenco a discesa «Specifica formato di salvataggio» (vedere screenshot).

8. Fare quindi clic sul pulsante Salva per salvare il file.
9. Chiudere quindi la cartella di lavoro e riaprirla, poi fare clic su «Abilita contenuto» nella parte superiore della barra delle formule per attivare il codice.

10. A questo punto verrà visualizzata una finestra di dialogo che richiede l’inserimento del nome utente e della password per aprire il foglio specifico assegnato a ciascun utente.
11. Infine, quando si invia questa cartella di lavoro ad altri utenti, è necessario fornire a ciascuno il proprio nome utente e la password corrispondente, in modo che possano aprire e modificare esclusivamente il proprio foglio, senza autorizzazione per visualizzare gli altri fogli di lavoro.
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi