Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie

Rimani informato sugli aggiornamenti di SOS-OFFICE. Inserisci il tuo indirizzo e-mail: Informativa sulla privacy

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   

Fabrizio
#1 Fabrizio 2017-01-10 19:15
L'uovo di Colombo.. Grazie. Fabrizio L.
Citazione
Joomla templates by a4joomla