Come oscurare le celle in base a un'altra colonna o alla scelta di una lista a discesa in Excel?
Nei compiti pratici di Excel, spesso ci si trova in situazioni in cui è necessario rendere i dati visivamente più evidenti o meno prominenti a seconda del valore di una cella correlata. Una richiesta comune è quella di oscurare automaticamente (diminuire o disattivare visivamente) determinate celle quando un'altra colonna contiene un valore specifico o quando viene effettuata una selezione da una lista a discesa.
Questo tipo di formattazione dinamica rende più facile interpretare grandi set di dati, aiuta il flusso di lavoro dove è necessario limitare l'input o chiarisce quali elementi non sono attualmente azionabili. Ad esempio, una colonna dello stato del progetto potrebbe attivare l'oscuramento della descrizione di un'attività se lo stato è "Completato".
Questo articolo introduce diversi modi efficaci per oscurare le celle basandosi sui valori di un'altra colonna o sulla scelta di una lista a discesa in Excel, coprendo sia la formattazione condizionale standard che approcci VBA più avanzati per requisiti complessi. Troverete anche suggerimenti per la risoluzione dei problemi e consigli pratici lungo il percorso.
Oscura le celle in base a un'altra colonna o alla scelta di una lista a discesa
VBA: Automatizza l'oscuramento delle celle in base a un'altra colonna o a una lista a discesa
Oscura le celle in base a un'altra colonna o alla scelta di una lista a discesa
Supponiamo di avere due colonne: la colonna A contiene i dati principali (ad esempio, attività o descrizioni), e la colonna B contiene indicatori di stato o flag (come "SÌ"/"NO", o selezioni da una lista a discesa). Potreste voler oscurare visivamente gli elementi nella colonna A in base ai valori nella colonna B. Ad esempio, quando una cella nella colonna B mostra "SÌ", la cella corrispondente nella colonna A apparirà oscurata, segnalando che è inattiva o completata. Se la colonna B contiene qualcosa di diverso da "SÌ", la colonna A mantiene l'aspetto normale.
Questo approccio è adatto per fogli di gestione delle attività, liste di controllo, flussi di lavoro o qualsiasi foglio in cui lo stato in una colonna controlla la formattazione in un'altra. Mantiene i dati organizzati e user-friendly ma si basa su colonne ben strutturate e allineate (assicurarsi che le righe corrispondano correttamente).
1. Selezionate le celle nella colonna A che desiderate oscurare automaticamente in base all'altra colonna. Ad esempio, selezionate A2:A100 (selezionate solo le celle che corrispondono all'intervallo utilizzato nella colonna B). Poi andate su Home > Formattazione Condizionale > Nuova Regola.
2. Nella finestra Nuova Regola di Formattazione, cliccate Usa una formula per determinare quali celle formattare. Inserite questa formula =B2="SÌ" nel campo Formatta i valori in cui questa formula è vera, che verifica se il valore nella cella corrispondente della colonna B è "SÌ":
3. Poi, cliccate il pulsante Formato Nella finestra Formato Celle scegliete un colore grigio trovato nella scheda Riempimento Questa sarà il colore di sfondo utilizzato per oscurare.
4. Dopo aver impostato il colore, cliccate OK per chiudere la finestra Formato Celle, e poi cliccate OK di nuovo per applicare la nuova regola di formattazione.
D'ora in poi, ogni volta che la colonna B visualizza "SÌ", la cella corrispondente nella colonna A apparirà oscurata. Se la colonna B viene cambiata in un altro valore (come "NO" o vuota), l'aspetto della colonna A ritorna alla normalità. Questo metodo è istantaneo e non richiede alcun aggiornamento manuale dopo la configurazione.
Consigli: Per applicare questo con una lista 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 Attesa"), o liste di validazione con valori consentiti specifici.
Per creare una lista a discesa nella colonna B (la colonna di controllo):
- Selezionate le celle nella colonna B dove volete un menu a discesa.
- Cliccate Dati > Convalida Dati.
- Nella finestra di dialogo Convalida Dati, scegliete Elenco dal menu a discesa Consenti Nel campo Origine digitate o selezionate un intervallo di celle contenente i valori consentiti (ad esempio, SÌ,NO).
Ora avete una lista a discesa in ogni cella della colonna B, permettendo agli utenti di scegliere tra opzioni preimpostate:
Ripetete la configurazione della Formattazione Condizionale come sopra, usando una formula che corrisponde all'elemento che desiderate attivare la formattazione grigia (ad esempio, =B2="SÌ"Dopo aver applicato la formattazione condizionale, le celle target nella colonna A si oscureranno automaticamente ogni volta che "SÌ" viene selezionato nella lista a discesa della colonna B.
Altri consigli e precauzioni:
- Assicuratevi che l'intervallo di formattazione condizionale nella colonna A corrisponda all'area dati e sia allineato con i riferimenti della colonna B. Se cadono fuori sincrono, la formattazione potrebbe non essere applicata come previsto.
- Quando copiate o riempite dati nelle colonne, verificate che i riferimenti (ad esempio, B2) si aggiornino correttamente.
- Per ottenere i migliori risultati, cancellate qualsiasi vecchia formattazione dai vostri intervalli prima di applicare nuove regole.
- Per rimuovere l'effetto oscurato, cambiate il valore trigger della regola nella colonna B o eliminate la regola di formattazione condizionale.
- Se il vostro foglio di lavoro è condiviso, assicuratevi che gli utenti sappiano quali valori attiveranno il formato.
Se la formattazione condizionale non funziona come previsto, verificate che le celle nella colonna B contengano esattamente i valori che la formula sta testando (nessuno spazio extra, maiuscole minuscole corrette se non usate la corrispondenza esatta, e validazione contro caratteri nascosti).

Sblocca la Magia di Excel con Kutools AI
- Esecuzione Intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici — tutto guidato da semplici comandi.
- Formule Personalizzate: Genera formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA senza sforzo.
- Interpretazione delle Formule: Comprendi facilmente formule complesse.
- Traduzione del Testo: Superare le barriere linguistiche all'interno dei tuoi fogli di calcolo.
VBA: Automatizza l'oscuramento delle celle in base a un'altra colonna o a una lista a discesa
Per scenari più avanzati, come l'applicazione batch della formattazione, la gestione di condizioni multiple e complesse, o quando le regole e i limiti della formattazione condizionale non soddisfano i vostri requisiti, potete utilizzare il codice VBA per automatizzare l'oscuramento delle celle.
Casi d'uso comuni:
- Oscura automaticamente intere righe o intervalli specifici basati su selezioni da liste a discesa o qualsiasi logica legata a un'altra colonna.
- Assicura che la formattazione rimanga coerente anche dopo importazioni di dati o aggiornamenti guidati da macro.
- Applica stati condizionali multipli che superano i limiti della formattazione condizionale integrata.
1. Cliccate Strumenti Sviluppatore > Visual Basic per aprire l'editor VBA (Alt+F11 è una scorciatoia). Nella finestra VBA, cliccate Inserisci > Modulo. Nel nuovo modulo, copiate e incollate 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, premete F5 con la finestra del codice attiva. La macro scorre ogni riga nel vostro foglio di lavoro—partendo dalla riga 2 (così la prima riga può rimanere un'intestazione)—e controlla la colonna B per il valore trigger (di default, "SÌ"). Se lo trova, riempie la cella corrispondente nella colonna A di grigio. Se il valore trigger è assente, qualsiasi riempimento grigio precedente viene rimosso (ripristinando l'aspetto predefinito della cella).
Potete personalizzare i seguenti parametri nel codice:
- checkCol: Colonna da controllare (ad esempio, "B")
- dataCol: Colonna da oscurare (ad esempio, "A")
- triggerValue: Valore da abbinare per il riempimento grigio (ad esempio, "SÌ", "Completato", qualsiasi valore nella vostra lista)
Avvertenze e consigli:
- Questa macro cambia permanentemente gli sfondi delle celle. Se desiderate che i colori si aggiornino in tempo reale mentre cambiate i dati, considerate di rieseguire la macro dopo ogni aggiornamento o utilizzate la programmazione dell'evento Worksheet_Change (solo per utenti avanzati).
- Questo approccio non è influenzato dal numero di celle o dai limiti delle regole di formattazione condizionale, quindi è ideale per intervalli dinamici ampi o molte condizioni.
- Se attivate accidentalmente la macro e volete rimuovere i riempimenti grigi, basta eseguirla di nuovo dopo aver cancellato o modificato i valori pertinenti.
- Potete estendere l'istruzione If per aggiungere più condizioni (ad esempio, oscurare in base a più scelte, colonne aggiuntive o logiche più complesse).
Utilizzare VBA per oscurare manualmente o automaticamente le celle offre la massima flessibilità per soluzioni Excel complesse, su larga scala o altamente personalizzate.
I migliori strumenti per la produttività in Office
Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice
- Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!