Nei fogli Excel complessi può essere utile bloccare tutte le celle mantenendone editabili solo alcune evidenziate con un particolare colore.
Per ottenere questo comportamento è possibile utilizzare uno script VBA.
- Avviare Excel e caricare il documento che si intende proteggere;
- Dal menu File selezionare Opzioni;
- Selezionare Personalizzazione barra multifunzione;
- Nell'elenco Schede principali (sulla destra) aggiungere il segno di spunta alla voce Sviluppo e cliccare su OK;
|
FIG 1 - MS Excel, Personalizzazione barra multifunzione |
- Premere la combinazione di tasti ALT+F11 per aprire l'editor Microsoft Visual Basic, Application Edition;
- Dall'elenco ad albero presente sulla sinistra, eseguire un doppio click su Questa_cartella_di_lavoro;
|
FIG 2 - Microsoft Visual Basic, Application Edition |
- Copiare ed incollare il seguente codice
Sub BloccaCelleEvidenziate()
Dim idColore As Integer
idColore = 6
Dim rng As Range
Dim colore As Long
For Each rng In ActiveSheet.UsedRange.Cells
colore = rng.Interior.colorIndex
If (colore = idColore) Then
rng.Locked = False
Else
rng.Locked = True
End If
Next rng
End Sub
- La variabile idColore rappresenta il codice colore delle celle da mantenere editabili. Il colore può essere modificato facendo riferimento all'elenco presente sul sito http://dmcritchie.mvps.org/excel/colors.htm.
- Dalla scheda Sviluppo cliccare sul pulsante Macro (oppure premere la combinazione ALT+F8);
- Selezionare la macro BloccaCelleEvidenziate e cliccare su Esegui;
- Per bloccare le altre celle, posizionarsi sulla scheda Revisione, cliccare su Proteggi foglio ed accettare le impostazioni di default cliccando su OK;
|
FIG 3 - MS Excel, Proteggi foglio |
- Dal menu File, cliccare su Salva con nome. Nella casella Salva come selezionare Cartella di lavoro con attivazione macro di Excel quindi assegnare un nome al file e confermare il salvataggio.
|
FIG 4 - MS Excel, Salva come Cartella di lavoro con attivazione macro di Excel |
Adesso tutte le celle colorate con il codice colore specificato dalla variabile idColore verranno mantenute editabili mentre le restanti saranno bloccate.