Fogli di lavoro protetti/non protetti da VBA

Questo tutorial ti insegnerà tutto sulla protezione del foglio di lavoro Excel in VBA - Come proteggere o rimuovere la protezione dei fogli di lavoro in Excel.

Annulla protezione foglio di lavoro Excel senza password

Per rimuovere la protezione di un foglio di lavoro non protetto da password, utilizzare questa semplice riga di codice:

1 Fogli di lavoro("Foglio1").Unprotect

Annulla protezione foglio di lavoro Excel con password

Per rimuovere la protezione di un foglio di lavoro protetto da password, è necessario inserire anche la password:

1 Fogli di lavoro ("Foglio1"). Rimuovi protezione "Password"

Foglio di rimozione della protezione - Password persa

Per rimuovere la protezione di un foglio di lavoro senza conoscere la password, è necessario utilizzare un componente aggiuntivo per il recupero della password.

Proteggi i fogli di lavoro

La protezione del foglio di lavoro consente di impedire la modifica di determinati aspetti del foglio.

Questo menu si trova in Home > Formato > Proteggi foglio o facendo clic con il pulsante destro del mouse sul nome della scheda Foglio:

Più comunemente questo viene utilizzato per proteggere le celle "Bloccate" dalla modifica, consentendo solo all'utente finale di modificare determinate celle.

Puoi bloccare le celle selezionandole e aprendo il Scheda Protezione del Menu Formattazione cella (CTRL + 1).

Puoi anche impedire all'utente di modificare la struttura del foglio di lavoro (inserire, eliminare o ridimensionare righe e colonne) o di interagire con i filtri automatici e molto altro.

Proteggi foglio di lavoro - Senza password

Potresti voler proteggere un foglio di lavoro senza inserire una password. Ciò impedirà modifiche accidentali al foglio di lavoro, dando all'utente l'accesso per apportare modifiche se lo desidera.

1 Fogli di lavoro("Foglio1").Proteggi

Proteggi foglio di lavoro - Proteggi con password

1 Fogli di lavoro("Foglio1").Proteggi "Password"

Proteggi le impostazioni del foglio di lavoro

Gli esempi precedenti proteggeranno i fogli di lavoro con le impostazioni di protezione standard. Invece potresti voler personalizzare ciò che è protetto:

12345 Worksheets("Sheet1").Proteggi password:=strPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _UserInterfaceOnly:=True, AllowFormattingCells:=False, AllowFormattingColumns:=False, _AllowFormattingRows:=False, AllowInsertingColumns:=False, AllowInsertingRows:=False, _AllowInsertingHyperlinks:=False, AllowDeletingColumns:=False, AllowDeletingRows:=False, _AllowSorting:=False, AllowFiltering:=False, AllowUsingPivotTables:=False

Invece di utilizzare la sintassi sopra, consiglio di registrare una Macro con le impostazioni desiderate (scelte con il menu Protezione foglio di lavoro sopra) e di copiare e incollare il codice registrato nella procedura.

Proteggi foglio - Consenti a VBA di apportare modifiche

Per impostazione predefinita, quando si protegge un foglio, la protezione si applica alle operazioni VBA oltre alle azioni dell'utente. Se VBA tenta di modificare una cella bloccata, vedrai un errore di runtime 1004. Per evitare ciò, puoi rimuovere la protezione e ri-proteggere i tuoi fogli di lavoro ogni volta che VBA deve interagire con essi:

123456789 Sub Edit_Sheet1()"Rimuovi protezione foglio1"Fogli di lavoro("Foglio1").Unprotect"Fai qualcosa al foglio1""Riproteggi foglio1"Fogli di lavoro("Foglio1").ProteggiFine sottotitolo

Tuttavia, è facile dimenticare di rimuovere la protezione e/o ri-proteggere i fogli di lavoro. Ciò può aumentare la probabilità di un errore di codifica.

È invece possibile utilizzare l'impostazione UserInterFaceOnly. Quando TRUE, i fogli di lavoro saranno protetti SOLO dagli utenti, NON da VBA.Il tuo codice VBA sarà libero di modificare il foglio di lavoro proprio come se fosse sbloccato.

Due punti importanti su UserInterFaceOnly:

  • Questa impostazione non è disponibile dal menu Protezione foglio di lavoro (mostrato sopra). È un'impostazione che deve essere definita in VBA.
  • L'impostazione non viene salvata quando si chiude una cartella di lavoro. Deve essere ridefinito ogni volta che viene aperta una cartella di lavoro.

Quindi, per impostare la proprietà UserInterFaceOnly, dovresti inserire la seguente procedura di evento Workbook_Open nel modulo ThisWorkbook:

1234567 Cartella di lavoro secondaria privata_Apri()Dim ws come foglio di lavoroPer ogni ws In ThisWorkbook.Worksheetsws.Protect UserInterfaceOnly:=TrueAvanti wFine sottotitolo

Workbook_Open è una procedura evento speciale che verrà eseguita ogni volta che la cartella di lavoro viene aperta. Deve essere inserito nel modulo ThisWorkbook. In alternativa, puoi usare la procedura dell'evento Auto_Open (non trattata qui).

Rimuovi protezione da tutti i fogli macro

Questa macro rimuoverà la protezione di tutti i fogli in una cartella di lavoro:

123456789 'Rimuovi la protezione di tutti i fogli di lavoroSub UnProtectAllSheets()Dim ws come foglio di lavoroPer ogni ws nei fogli di lavorows.Unprotect "password"Avanti wFine sottotitolo

Proteggi tutti i fogli macro

Questa macro proteggerà tutti i fogli in una cartella di lavoro:

123456789 'Proteggi tutti i fogli di lavoroSub ProtectAllSheets()Dim ws come foglio di lavoroPer ogni ws nei fogli di lavorow.Proteggi "password"Avanti wFine sottotitolo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave