Come limitare chi possa aprire o dove possa essere utilizzata una cartella di lavoro

Silvia lavora con un’organizzazione di volontariato e hanno sviluppato una cartella di lavoro di Excel appositamente per i loro volontari. Non vogliono che venga copiata o condivisa con individui esterni, quindi Silvia si chiede se esista un modo per proteggere la cartella di lavoro in modo che funzioni solo per un computer specifico e nessun altro.

Esistono alcuni modi per provare a garantire la sicurezza delle cartelle di lavoro, ma ci sono considerazioni da fare prima di scegliere il modo migliore. Tieni presente che praticamente qualsiasi approccio creerà disagio agli utenti in un modo o nell’altro. Inoltre, l’approccio che adotti può dipendere dal fatto che gli utenti siano esclusivamente sulla tua rete interna o siano volontari non connessi alla tua rete.

Un modo semplice per iniziare è semplicemente proteggere con password la cartella di lavoro e quindi comunicare la password ai volontari. Il duplice svantaggio di questo è che qualsiasi password trasmessa ai volontari continuerà a funzionare anche dopo che non saranno più volontari e per chiunque a cui i volontari potrebbero passare la cartella di lavoro. Questo è vero anche se crei una password individuale per ogni volontario.

Qualsiasi altro approccio si baserebbe sull’aggiunta di macro alla cartella di lavoro. Un ottimo modo è che la macro controlli il nome del computer su cui viene aperta la cartella di lavoro. Questo è un esempio di tale macro:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

L’idea alla base della macro è definire, nella stringa sPossible, i nomi di ciascun computer su cui è consentito aprire la cartella di lavoro. Tutto quello che devi fare è assicurarti di aver digitato correttamente i nomi delle macchine e racchiuderli tra parentesi quadre nella stringa sPossible. La funzione Environ restituisce il nome effettivo del computer, viene inserito nella variabile sTemp tra parentesi, quindi la funzione InStr viene utilizzata per vedere se è nell’elenco delle possibili macchine. Se lo è, viene visualizzato un messaggio di banvenuto; in caso contrario, viene visualizzata una finestra di messaggio e la cartella di lavoro viene chiusa senza salvare alcuna modifica.

Se preferisci qualcosa di ancora più sicuro, potresti anche utilizzare la funzione Environ per restituire il valore “username“, che ti fornirebbe il nome utente dell’account utilizzato sul computer.

Questo approccio macro è relativamente semplice, ma richiede la conoscenza dei nomi dei computer (e/o dei nomi utente) prima che funzioni correttamente. Si presuppone inoltre che l’utente non conosca abbastanza Excel per ignorare le macro tenendo premuto il tasto Maiusc all’avvio del programma. Se sospetti che l’utente possa sapere così tanto, dovrai eseguire ulteriori passaggi, come i seguenti:

  1. Assicurati che nella cartella di lavoro sia visibile un singolo foglio di lavoro. Tutti gli altri fogli di lavoro dovrebbero essere “molto nascosti” in modo che l’utente non possa visualizzarli utilizzando i passaggi normali.
  2. Se la macro determina che l’utente è autorizzato, nascondi il singolo foglio di lavoro visibile e rendi visibili tutti i fogli di lavoro “molto nascosti”.
  3. Quando la cartella di lavoro viene chiusa, inverti il processo e nascondi tutti i fogli di lavoro (impostando la proprietà Visible di ciascuno di essi su xlSheetVeryHidden) e rendi nuovamente visibile il singolo foglio di lavoro.

 

L’utilizzo di questo approccio garantisce che anche se l’utente disabilita le macro (tenendo premuto il tasto Maiusc durante l’avvio), non può accedere ai fogli di lavoro perché è necessaria una macro per renderli visibili.

È possibile utilizzare una variazione dell’approccio di cui sopra in modo che invece di fare affidamento sulla funzione Environ si possa fare in modo che la macro controlli la presenza di un file predeterminato in una posizione particolare nel sistema. Ciò significa, ovviamente, che è necessario un modo per mettere le mani sul sistema in anticipo per inserire il file corretto nella posizione corretta.

Infine, qualunque sia l’approccio basato su macro scelto, è necessario assicurarsi che il progetto VBA della cartella di lavoro sia protetto con una password. Ciò impedirà a qualcuno di andare a guardare il codice macro per capire cosa sta succedendo con la protezione.

C’è qualcos’altro che devi sempre tenere a mente quando cerchi di proteggere le tue cartelle di lavoro: qualunque protezione tu metta in atto può sempre essere aggirata con sufficiente conoscenza e pazienza. Se i tuoi utenti non sono così tecnicamente sofisticati, non dovresti avere problemi. Se sanno molto di Excel e delle macro, tuttavia, tutte le scommesse sono annullate.

 

Tags: , , , , , , , , , , , , ,

Ti è stato utile?