Formattazione condizionale in VBA di Excel

In Excel, tutti abbiamo usato la formattazione condizionale per evidenziare i valori duplicati. La formattazione principalmente condizionale viene utilizzata per ottenere valori duplicati. Possiamo evidenziare valori duplicati in molti modi. Possiamo evidenziare i valori duplicati, variare valori specifici e anche definire la regola per completare i criteri di formattazione. Di seguito sono riportate le funzioni variabili disponibili in Formattazione condizionale.

Ma cosa succede se siamo in grado di automatizzare questo processo di evidenziazione dei valori duplicati o di qualsiasi tipo secondo i nostri requisiti. I criteri che possiamo definire utilizzando la formattazione condizionale in Excel possono essere eseguiti anche in VBA. Per applicare la formattazione condizionale possiamo scegliere qualsiasi cella, intervallo disponibile nel foglio di lavoro di Excel. La formattazione condizionale funziona solo quando i criteri definiti soddisfano il requisito. Altrimenti, non mostrerà alcun cambiamento di colore. Con l'aiuto della formattazione condizionale in VBA, possiamo cambiare il colore di qualsiasi cella o contenuto di cella, eliminare il colore della cella o rimuovere anche il colore. Oltre a cambiare il colore della cella, possiamo cambiare il contenuto della cella in grassetto o corsivo . Una volta fatto, possiamo annullare anche tutte le modifiche.

Come utilizzare la formattazione condizionale in VBA di Excel?

Di seguito sono riportati i diversi esempi per utilizzare la funzione di formattazione condizionale in Excel utilizzando il codice VBA.

È possibile scaricare questo modello Excel di formattazione condizionale VBA qui - Modello Excel di formattazione condizionale VBA

Formattazione condizionale VBA - Esempio n. 1

Abbiamo dati di alcuni numeri e testo come mostrato sotto nelle colonne A e B. Ora abbiamo già classificato il colore che dobbiamo dare al numero e al testo che si trova nella cella D2. Abbiamo identificato il colore giallo per il numero 1 e l'alfabeto A e il colore verde per il numero 2 e l'alfabeto B.

Sebbene la formattazione condizionale VBA possa essere implementata nel modulo, ma la scrittura del codice per la formattazione condizionale nel foglio farà funzionare il codice solo in quel foglio. Per questo, invece di andare all'opzione Modulo, fai clic sulla scheda Inserisci per inserire un modulo.

Passo 1: Ora dal primo menu a discesa selezionare Foglio di lavoro che sarà Generale per impostazione predefinita e dal menu a discesa Seleziona selezionerà automaticamente l'opzione SelectionChange come mostrato di seguito.

Passaggio 2: una volta che lo facciamo, attiverà automaticamente la sottocategoria privata e la cella Target sarà come Range.

Codice:

 Sottotitoli privati ​​Worksheet_SelectionChange (ByVal Target As Range) End Sub 

Passo 3: Ora scrivi prima il codice per definire una variabile MyRange come intervallo . Oppure puoi scegliere qualsiasi altro nome invece di MyRange secondo la tua scelta.

Codice:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range End Sub 

Passaggio 4: utilizzare Set e scegliere l'intervallo definito come mostrato di seguito.

Codice:

 Sottotitolo privato Worksheet_SelectionChange (Target ByVal come intervallo) Dim MyRange As Range Set MyRange = End Sub 

Passaggio 5: Successivamente selezionare il foglio di lavoro in cui si desidera applicare la formattazione condizionale. Qui il nostro foglio è Foglio1. Possiamo mettere la sequenza anche come 1 invece di scrivere Sheet1. E quindi seleziona l'intervallo di quelle celle che dobbiamo formattare. Qui la nostra gamma va dalla cella A1 alla B8.

Codice:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Fogli di lavoro ("Sheet1"). Range ("A1: B8") End Sub 

Passaggio 6: ora apri un ciclo For Each-Next come mostrato di seguito. E inizia con la selezione della variabile MyRange definita dalla cella .

Codice:

 Sottotitolo privato Worksheet_SelectionChange (Target ByVal come intervallo) Dim MyRange As Range Set MyRange = Fogli di lavoro ("Sheet1"). Range ("A1: B8") per ogni cella in MyRange Next End Sub 

Passaggio 7: ora in quello, apri di nuovo un ciclo If-Else.

Codice:

 Sottotitolo privato Worksheet_SelectionChange (Target ByVal come intervallo) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") per ogni cella in MyRange se End Se Next End Sub 

Questa è la regione in cui vorremmo assegnare i colori a tutti i numeri e alfabeti disponibili nella nostra gamma.

Step 8: Scrivi il codice, se il valore della cella è 1 allora-Colore interno la cella dell'intervallo selezionato che va da A1 a B8 sarà Verde. E per il verde, abbiamo assegnato un codice colore come 6.

Codice:

 Sottotitolo privato Worksheet_SelectionChange (Target ByVal come intervallo) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") per ogni cella in MyRange Se Cell.Value come "1" Quindi Cell.Interior.ColorIndex = 6 End If Next End Sottotitoli 

Passaggio 9: Ora per il numero valore della cella 2. Altrimenti se il valore della cella di qualsiasi cella dell'intervallo selezionato è 2, il colore interno di quella cella sarà Giallo. E per il giallo abbiamo assegnato un codice colore come 4.

Codice:

 Sottotitolo privato Worksheet_SelectionChange (Target ByVal come intervallo) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") per ogni cella in MyRange Se Cell.Value come "1" Quindi Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Come "2" Quindi Cell.Interior.ColorIndex = 4 End If Next End Sub 

Per ogni colore, abbiamo assegnato diversi codici colore che iniziano da 1 a 56. Mentre il codice numerico 1 è assegnato al colore Nero e il numero 56 è assegnato al colore Grigio scuro. Nel mezzo, abbiamo diverse altre sfumature di colore che possiamo trovare da Microsoft Documents.

Passaggio 10: se uno dei precedenti

condizione è FALSO quindi avremmo un'altra Else se condizione in cui se il valore della cella è A, il colore interno della cella sarà Giallo. E per il giallo di nuovo assegneremo il codice come 6.

Codice:

 Sottotitolo privato Worksheet_SelectionChange (Target ByVal come intervallo) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") per ogni cella in MyRange Se Cell.Value come "1" Quindi Cell.Interior.ColorIndex = 6 ElseIf Cell.Value come "2" Quindi Cell.Interior.ColorIndex = 4 ElseIf Cell.Value come "A" Quindi Cell.Interior.ColorIndex = 6 End If Next End Sub 

Passaggio 11: fare la stessa cosa anche per il valore della cella B, con il codice colore 4 come verde.

Codice:

 Sottotitolo privato Worksheet_SelectionChange (Target ByVal come intervallo) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") per ogni cella in MyRange Se Cell.Value come "1" Quindi Cell.Interior.ColorIndex = 6 ElseIf Cell.Value come "2" Quindi Cell.Interior.ColorIndex = 4 ElseIf Cell.Value come "A" Quindi Cell.Interior.ColorIndex = 6 ElseIf Cell.Value come "B" Quindi Cell.Interior.ColorIndex = 4 End If Next End Sottotitoli 

Passaggio 12: Se una qualsiasi delle condizioni non è VERA, per Else preferiremo selezionare il codice colore come Nessuno .

Codice:

 Sottotitolo privato Worksheet_SelectionChange (Target ByVal come intervallo) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") per ogni cella in MyRange Se Cell.Value come "1" Quindi Cell.Interior.ColorIndex = 6 ElseIf Cell.Value come "2" Quindi Cell.Interior.ColorIndex = 4 ElseIf Cell.Value come "A" Quindi Cell.Interior.ColorIndex = 6 ElseIf Cell.Value come "B" Quindi Cell.Interior.ColorIndex = 4 Else Cell.Ineterios.ColorIndex = xlNessuna fine se sottotitola successiva 

Passaggio 13: Poiché il codice è grande, per compilare ogni passaggio del codice premere il tasto funzionale F8. Se non viene trovato alcun errore, fai clic sul pulsante di riproduzione per eseguire l'intero codice in una volta sola. Vedremo, come da regola di formattazione condizionale definita nel codice VBA, il colore delle celle è stato cambiato in codici colore selezionati come mostrato di seguito.

Passaggio 14: questa formattazione è stata corretta. Se vogliamo vedere i cambiamenti di colore, per test cambiamo il valore di qualsiasi cella consideriamo A1 da 1 a 2. Vedremo, il colore della cella A1 viene cambiato in Verde.

Questo perché abbiamo dichiarato che nell'intervallo da A1 a B8, qualsiasi cella contenente i numeri 1 e 2 e gli alfabeti A e B, sarà formattata come colore giallo e verde, come mostrato nella cella da D2 a E3.

Pro e contro

  • Fornisce un output immediato se disponiamo di dati enormi. Considerando che se applichiamo lo stesso dall'opzione di menu di Excel, ci vorrà del tempo per cancellare la formattazione per il set di big data.
  • Possiamo eseguire tutti i tipi di funzioni disponibili in Excel per la formattazione condizionale anche in VBA.
  • Non è consigliabile applicare la formattazione condizionale VBA per un piccolo set di dati.

Cose da ricordare

  • Ci sono molte altre funzioni oltre a evidenziare i duplicati e le stesse celle di valore. Possiamo cambiare il formato della cella in qualsiasi modo, ad esempio grassetto, testo in corsivo, cambiando il colore del carattere, cambiando il colore di sfondo, evidenziando i valori tra alcuni intervalli specifici.
  • Una volta applicata la formattazione condizionale, possiamo cambiare la regola, infatti, possiamo anche eliminare le condizioni di formattazione. In modo che i nostri dati tornino alla normalità.
  • Possiamo applicare più di una condizione in una macro.

Articoli consigliati

Questa è una guida alla formattazione condizionale VBA. Qui discutiamo come utilizzare la funzione di formattazione condizionale VBA di Excel insieme ad esempi pratici e modello Excel scaricabile. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Copia incolla funzione in VBA
  2. Sottostringa Funzione Excel
  3. Abbonamento VBA fuori intervallo
  4. Excel ISNUMBER Formula
  5. Formattazione condizionale per date in Excel

Categoria: