Proteggere la formattazione condizionale

Carlo ha un foglio di lavoro che utilizza ampiamente la formattazione condizionale. Tuttavia, la formattazione condizionale continua a incasinarsi quando gli utenti copiano e incollano informazioni o quando utilizzano il trascinamento della selezione per modificare il foglio di lavoro. Si chiede quale sia il modo migliore per evitare che ciò accada.

Ciò accade perché la formattazione condizionale è considerata proprio così: come una formattazione. Un copia e incolla standard (o una modifica con trascinamento della selezione) copia tutto, inclusa la formattazione. Ciò significa che le celle di destinazione avranno la formattazione delle celle di origine, non la formattazione delle celle di destinazione (inclusa qualsiasi formattazione condizionale che potrebbe essere stata nelle celle di destinazione).

La risposta, quindi, è dire agli utenti di non eseguire un copia e incolla standard. Invece, dovrebbero usare le opzioni di incolla per incollare qualsiasi cosa tranne la formattazione.

Un’altra opzione, ovviamente, è proteggere il foglio di lavoro in modo che l’utente non possa copiare e incollare nulla. Questo potrebbe essere un po’ drastico per i tuoi utenti, tuttavia, poiché potresti volere che apportino modifiche (semplicemente non vuoi che rovinino la formattazione condizionale).

Questo porta a un approccio macro. Se puoi registrare una macro che applica la formattazione condizionale alle celle, puoi creare alcune macro aggiuntive che applicano quella macro registrata, se necessario. Ad esempio, supponiamo che la macro che registri sia chiamata qualcosa di breve e sexy come ImpostaFormato.

Quindi, vai nell’editor di Visual Basic e, nella finestra Immediata, inserisci quanto segue:

? Cells.SpecialCells(xlCellTypeAllFormatConditions).Address

 

Supponendo che tu abbia impostato la formattazione condizionale, questo dovrebbe restituire una riga, forse una lunga riga, che mostra gli indirizzi delle celle e degli intervalli che utilizzano la formattazione condizionale. Sembrerà qualcosa del genere:

$B$3:$B$50,$D$3:$D$50,$G$3:$I$20

 

Quindi, aggiungi la seguente macro al modulo di codice del foglio di lavoro:

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.

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

La chiave qui è assicurarsi che la costante cCFAddress sia impostata uguale a ciò che è stato restituito quando hai visto gli indirizzi nella finestra Immediata (se si modifica la formattazione condizionale in un secondo momento, è possibile utilizzare nuovamente il trucco della finestra immediata e modificare semplicemente la riga nella macro sopra).

La macro viene eseguita ogni volta che si verifica una modifica nel foglio di lavoro. Verifica se l’indirizzo modificato (passato nella variabile Target) fa parte delle celle originali che contenevano formati condizionali. In tal caso, il tuo ImpostaFormato (quello che hai registrato per eseguire la formattazione condizionale) viene nuovamente eseguito.

Tags: , , , , , , ,

Ti è stato utile?