Come impostare password per proteggere singoli fogli di lavoro per diversi utenti in Excel?
In Excel, puoi impostare password diverse per diversi fogli di lavoro; questo significa che un utente può apportare modifiche a un foglio di lavoro utilizzando una password, mentre un altro utente può usare una password diversa per modificare un altro foglio. Tuttavia, a volte desideri che ogni utente possa solo visualizzare e accedere al proprio foglio. È possibile risolvere questo problema in Excel?
Per proteggere ciascun foglio di lavoro individualmente e limitare l'accesso ai fogli da parte degli utenti, applica il seguente codice VBA:
1. Apri una nuova cartella di lavoro e crea un nuovo foglio denominato “Main”, vedi screenshot:
2. Quindi, premi i tasti "Alt" + "F11" per aprire la finestra "Microsoft Visual Basic for Applications", fai doppio clic su "ThisWorkbook" nel riquadro sinistro "Project-VBAProject" per aprire un modulo di codice vuoto, quindi copia e incolla il seguente codice VBA nella finestra del codice, vedi screenshot:
Codice VBA: Imposta password per proteggere singoli fogli da parte degli 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. Successivamente, posiziona il cursore alla fine dello script "Private Sub Workbook_Open()", e premi il tasto "F5" per eseguire questo codice. Ora, nella finestra di dialogo che appare, inserisci il nome utente per il quale desideri creare un foglio, vedi screenshot:
4. Dopodiché, fai clic sul pulsante "OK"; nella finestra di dialogo successiva, inserisci una password per proteggere questo foglio, vedi screenshot:
5. Continua facendo clic sul pulsante "OK", e verrà creato immediatamente un nuovo foglio nominato con il nome utente, e potrai creare i dati per quell'utente come necessario. Vedi screenshot:
6. Ripeti i passaggi da 3 a 5 sopra per creare altri fogli uno per uno che desideri utilizzare.
7. Dopo aver creato i fogli, salva la cartella di lavoro corrente facendo clic su "File" > "Salva con nome". Nella finestra di dialogo "Salva con nome", specifica un nome file e scegli il formato "Cartella di lavoro con Macro abilitate (*.xlsm)" dall'elenco a discesa "Specifica formato di salvataggio", vedi screenshot:
8. Quindi fai clic sul pulsante Salva per salvare il file.
9. Dopodiché, chiudi la cartella di lavoro e riaprila, quindi fai clic su "Abilita contenuto" nella parte superiore della barra delle formule per attivare il codice.
10. Ora, apparirà una finestra di dialogo che ti chiederà di inserire il nome utente e la password per consentire a un determinato utente di aprire il foglio specifico.
11. Infine, quando invii questa cartella di lavoro ad altri utenti, dovresti fornire loro il nome utente e la password. Potranno solo aprire e modificare i propri fogli e non avranno l'autorizzazione per vedere gli altri fogli di lavoro.
I 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 oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione 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 della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!