- Dettagli
- Scritto da Alessandra
- Pubblicato: 14 Dicembre 2012
- Visite: 21944
Nell'articolo di oggi vogliamo evidenziare una questione che si può presentare a chi inserisce codice VBA in progetti destinati all'usi di altri utenti. Per questioni di sicurezza, potrebbe essere utile proteggere i fogli di lavoro, ma a quel punto, le macro VBA potrebbero non funzionare più correttamente.... e allora? una soluzione c'è e anche piuttosto semplice.
Basta rimuovere via codice la protezione come prima operazione della sub o funzione VBA e ripristinarla, sempre via codice, alla fine di tutte le operazioni della macro.
Il codice per rimuovere la protezione da foglio è
Sheets("nomeFoglio").Unprotect Password:="password"
Dove, naturalmente, a nomeFoglio bisogna sostituire il nome del foglio da cui rimuovere la protezione e a password la password eventualmente utilizzata per proteggere il foglio. Se non avete usato una password, dovete omettere del tutto l'argomento Password.
Se la macro e la protezione coinvolgono più fogli, è possibile scrivere un ciclo for per rimuovere la protezione da tutti i fogli. Naturalmente, in questo caso, i fogli devono essere protetti con la stessa password o senza password.
For Each foglio In Sheets
foglio.Unprotect
Next
In modo molto simile, è possibile scrivere un ciclo for che reimposta la protezione
For Each foglio In Sheets
foglio.Protect
Next
Commenti
Non capisco però perché se imposto come password "parola", una volta che tento di sbloccarlo dalla tendina Revisione usando la stessa password, mi dice che è sbagliata.
RSS feed dei commenti di questo post.