Skip to main content

Come impostare password per proteggere singoli fogli di lavoro per diversi utenti in Excel?

Author: Xiaoyang Last Modified: 2025-05-30

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:

A screenshot of the Main sheet in Excel where the first worksheet is created

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

A screenshot of the Visual Basic for Applications window with the VBA code to set passwords for individual sheets

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:

A screenshot of the prompt box asking for a user name to create a new sheet in Excel

4. Dopodiché, fai clic sul pulsante "OK"; nella finestra di dialogo successiva, inserisci una password per proteggere questo foglio, vedi screenshot:

A screenshot of the prompt box asking for a password to protect the newly created sheet in Excel

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:

A screenshot of the newly created sheet named after the user in Excel

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:

A screenshot of the Save As dialog box in Excel, showing the Save as type dropdown list for Excel Macro-Enabled Workbook (*.xlsm)

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.

A screenshot of the Enable Content button in Excel to activate the VBA code

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

🤖 Kutools AI Aide: Rivoluziona l'analisi dei dati grazie a: Esecuzione Intelligente | Genera Codice | Crea Formule Personalizzate | Analizza Dati e Genera Grafici | Richiama Funzioni avanzate di Kutools
Funzionalità popolari: Trova, evidenzia o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda...
Super RICERCA.VERT: Ricerca VERT con criteri multipli | Ricerca VERT con valori multipli | Ricerca su più fogli | Corrispondenza approssimativa...
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa multi-selezione...
Gestione Colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Attiva/disattiva la visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro e Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email tramite elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...) ...
Top15 set di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule pratiche (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci Immagine da percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti di unione e divisione (Unione avanzata righe, Dividi celle, ...) | ... e molto altro

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!