Come oscurare celle in base al valore di un’altra colonna o a una selezione da un elenco a discesa in Excel?
Nelle attività pratiche con Excel, capita spesso di dover rendere alcuni dati visivamente più evidenti o meno prominenti in base al valore di una cella correlata. Una richiesta comune è quella di «oscurare» automaticamente (attenuare o disattivare visivamente) determinate celle quando un’altra colonna contiene un valore specifico o quando viene effettuata una selezione da un elenco a discesa.
Questa formattazione dinamica semplifica l’interpretazione di set di dati ampi, supporta flussi di lavoro in cui è necessario limitare l’inserimento di dati e chiarisce immediatamente quali elementi non sono attualmente azionabili. Ad esempio, lo stato di un progetto potrebbe attivare l’oscuramento della descrizione di un’attività se lo stato è «Completato».
Questo articolo presenta diversi metodi efficaci per oscurare celle in base ai valori di un’altra colonna o a una scelta da un elenco a discesa in Excel, illustrando sia le funzionalità standard della formattazione condizionale sia approcci VBA più avanzati per esigenze complesse. Lungo il percorso troverai anche suggerimenti per la risoluzione dei problemi e consigli pratici per l’utilizzo.
Oscurare celle in base a un’altra colonna o a una scelta da un elenco a discesa
VBA: Automatizzare l’oscuramento delle celle in base a un’altra colonna o a un Elenco a discesa
Oscurare celle in base a un’altra colonna o a una scelta da un elenco a discesa
Immagina di avere due colonne: la colonna A contiene i tuoi dati principali (ad esempio, attività o descrizioni), mentre la colonna B include indicatori di stato o flag (come «SÌ»/«NO» o opzioni selezionate da un elenco a discesa). Potresti voler oscurare visivamente gli elementi nella colonna A in base ai valori presenti nella colonna B. Ad esempio, quando una cella della colonna B riporta «SÌ», la cella corrispondente nella colonna A appare oscurata, a indicare che è inattiva o completata. Se invece la colonna B contiene un valore diverso da «SÌ», la colonna A conserva il suo aspetto normale.
Questo approccio è perfetto per fogli dedicati alla gestione di attività, liste di controllo, flussi di lavoro o qualsiasi altro foglio in cui lo stato di una colonna determina la formattazione di un’altra. Ti aiuta a mantenere i dati organizzati e intuitivi da usare, ma richiede colonne ben strutturate e allineate (assicurati che le righe corrispondano correttamente).
1. Seleziona le celle nella colonna A che desideri oscurare automaticamente in base ai valori presenti nell’altra colonna. Ad esempio, seleziona A2:A100 (assicurati di includere solo le celle corrispondenti all’intervallo utilizzato nella colonna B). Poi vai su Home > Formattazione condizionale > Nuova regola.
2. Nella finestra di dialogo Nuova regola di formattazione, fai clic su Utilizza una formula per determinare le celle da formattare. Inserisci la formula =B2=«SÌ» nella casella etichettata Formatta i valori per cui questa formula è vera, che verifica se il valore nella cella corrispondente della colonna B è «SÌ»:
3. Poi, fai clic sul pulsante Formato. Nella finestra di dialogo Imposta formato cella, scegli un colore grigio nella scheda Riempimento. Questo sarà il colore di sfondo utilizzato per l’oscuramento.
4. Dopo aver impostato il colore, fai clic su OK per chiudere la finestra Imposta formato cella, quindi fai nuovamente clic su OK per applicare la nuova regola di formattazione.
Da ora in poi, ogni volta che la colonna B mostrerà «SÌ», la cella corrispondente nella colonna A si oscurerà automaticamente. Se il valore nella colonna B viene modificato in un altro (ad esempio «NO» o lasciato vuoto), l’aspetto della cella nella colonna A tornerà immediatamente alla normalità. Questo metodo è istantaneo e non richiede aggiornamenti manuali una volta configurato.
Suggerimenti: Per applicare questa procedura a un elenco a discesa nella colonna B, il processo è simile. Questo approccio è particolarmente utile quando la colonna di controllo utilizza scelte standardizzate, come lo stato del progetto («In corso», «Completato»), caselle di controllo («Fatto», «In sospeso») o elenchi di convalida con valori specifici consentiti.
Per creare un Elenco a discesa nella colonna B (la colonna di controllo):
- Seleziona le celle nella colonna B in cui vuoi inserire un menu a discesa.
- Fai clic su Dati > Convalida dati.
- Nella finestra di dialogo Convalida dati, scegli Elenco dal menu a discesa Consenti. Nella casella Origine, digita o seleziona un intervallo di celle contenente i valori consentiti (ad esempio,)SÌ, NO).

Ora disponi di un Elenco a discesa in ciascuna cella della colonna B, che consente agli utenti di scegliere tra opzioni predefinite:
Ripeti la configurazione Utilizza la formattazione condizionalecome indicato sopra, usando una formula che corrisponda all’elemento da formattare in grigio (ad esempio,)=B2=«SÌ»). Dopo aver applicato la formattazione condizionale, le celle di destinazione nella colonna A si oscureranno automaticamente non appena selezioni «SÌ» dal menu a discesa della colonna B.
Ulteriori suggerimenti e precauzioni:
- Assicurati che l’intervallo a cui applichi la formattazione condizionale nella colonna A corrisponda all’area dati e sia allineato ai riferimenti della colonna B. Se non sono sincronizzati, la formattazione potrebbe non essere applicata correttamente.
- Quando copi o riempi i dati nelle colonne, verifica che i riferimenti (ad esempio, B2) vengano aggiornati in modo appropriato.
- Per risultati ottimali, rimuovi qualsiasi formattazione precedente dagli intervalli prima di applicare nuove regole.
- Per disattivare l’effetto di oscuramento, modifica il valore di attivazione nella colonna B oppure elimina la regola di formattazione condizionale.
- Se il foglio di lavoro è condiviso, assicurati che tutti gli utenti sappiano quali valori attiveranno la formattazione.
Se la formattazione condizionale non funziona come previsto, verifica che le celle nella colonna B contengano esattamente i valori testati dalla formula: assicurati che non ci siano spazi aggiuntivi, che maiuscole e minuscole siano corrette (se non è attiva una corrispondenza esatta) e che non siano presenti caratteri nascosti.

Sblocca la magia di Excel con KUTOOLS AI
- Esecuzione intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici, il tutto con comandi semplici e intuitivi.
- Formule personalizzate: crea formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA in modo semplice e immediato.
- Interpretazione delle formule: Comprendi con facilità anche le formule più complesse.
- Traduzione del testo: Superate le barriere linguistiche direttamente nei vostri fogli di calcolo.
VBA: Automatizzare l’oscuramento delle celle in base a un’altra colonna o a un Elenco a discesa
Per scenari più avanzati, come l’applicazione batch della formattazione, la gestione di condizioni multiple e più complesse o quando i limiti e le regole di Utilizza la formattazione condizionale non soddisfano le tue esigenze, puoi utilizzare codice VBA per automatizzare l’oscuramento delle celle.
Casi d’uso comuni:
- Oscura automaticamente un’intera riga o intervalli specifici in base alle selezioni da elenchi a discesa o a qualsiasi logica legata a un’altra colonna.
- Mantieni una formattazione coerente anche dopo importazioni di dati o aggiornamenti del foglio guidati da macro.
- Applica stati condizionali multipli che superano i limiti delle funzionalità integrate: usa la formattazione condizionale.
1. Fai clic su Strumenti per sviluppatori > Visual Basicper aprire l’editor VBA ()Alt+F11 è una scorciatoia). Nella finestra VBA, fai clic su Inserisci > Modulo. Nel nuovo modulo, copia e incolla il seguente codice:
Sub GreyOutCellsBasedOnAnotherColumn()
Dim ws As Worksheet
Dim lastRow As Long
Dim checkCol As String
Dim dataCol As String
Dim i As Long
Dim triggerValue As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
'----- Set parameters here -----
Set ws = ActiveSheet ' Or: Set ws = ThisWorkbook.Sheets("Sheet1")
checkCol = "B" ' Column to check (e.g., B)
dataCol = "A" ' Column to grey out (e.g., A)
triggerValue = "YES" ' Value that triggers grey out. Change as needed: "YES", "Complete", etc.
'----- Find last row in the check column -----
lastRow = ws.Cells(ws.Rows.Count, checkCol).End(xlUp).Row
For i = 2 To lastRow ' Assumes header in row 1
If ws.Cells(i, checkCol).Value = triggerValue Then
ws.Cells(i, dataCol).Interior.Color = RGB(191, 191, 191) ' Grey fill
Else
ws.Cells(i, dataCol).Interior.ColorIndex = xlNone ' Remove fill if condition not met
End If
Next i
End Sub 2. Per eseguire la macro, premi F5 con la finestra del codice attiva. La macro esamina ogni riga del foglio di lavoro—partendo dalla riga 2 (in modo che la prima riga possa rimanere un’intestazione)—e controlla la colonna B alla ricerca del valore di attivazione («SÌ» per impostazione predefinita). Se lo trova, riempie la cella corrispondente nella colonna A con il colore grigio; in caso contrario, rimuove qualsiasi riempimento grigio precedente, ripristinando l’aspetto predefinito della cella.
Puoi personalizzare i seguenti parametri nel codice:
- checkCol: Colonna da controllare (ad esempio, «B»)
- dataCol: Colonna da oscurare (ad esempio, «A»)
- triggerValue: Valore da confrontare per l’oscuramento (ad esempio, «SÌ», «Completato», unValore Y presente nel tuo elenco)
Avvertenze e suggerimenti:
- Questa macro modifica in modo permanente lo sfondo delle celle. Se desideri che i colori si aggiornino in tempo reale al variare dei dati, valuta di rieseguire la macro dopo ogni aggiornamento oppure utilizza uno script basato sull'evento Worksheet_Change (riservato agli utenti avanzati).
- L’approccio non dipende dal numero di celle né dai limiti delle regole: sfrutta la formattazione condizionale, risultando così ideale per ampi intervalli dinamici o per numerose condizioni.
- Se attivi accidentalmente la macro e vuoi rimuovere le celle con sfondo grigio, eseguila nuovamente dopo aver cancellato o modificato i valori pertinenti.
- Puoi estendere l’istruzione If per includere condizioni aggiuntive, come disattivare celle in base a scelte multiple, colonne extra o logiche più complesse.
L’uso di VBA per oscurare le celle, manualmente o automaticamente, offre la massima flessibilità per soluzioni Excel complesse, su larga scala o altamente personalizzate.
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi
