Comment griser des cellules en fonction d'une autre colonne ou d'un choix dans une liste déroulante dans Excel ?
Dans les tâches pratiques d'Excel, il arrive souvent que vous ayez besoin de faire ressortir visuellement des données ou, au contraire, de les rendre moins visibles en fonction de la valeur d'une cellule liée. Une exigence courante est de griser automatiquement (assombrir ou désactiver visuellement) certaines cellules lorsque l'autre colonne contient une valeur spécifique ou lorsqu'une sélection est effectuée dans une liste déroulante.
Un tel formatage dynamique rend les grands ensembles de données plus faciles à interpréter, aide au flux de travail où l’entrée doit être restreinte, ou clarifie les éléments qui ne sont pas actuellement actionnables. Par exemple, une colonne d'état du projet pourrait déclencher le grisage de la description d'une tâche si l'état est "Terminé".
Cet article présente plusieurs méthodes efficaces pour griser des cellules en fonction des valeurs d'une autre colonne ou d'un choix dans une liste déroulante dans Excel, couvrant à la fois la mise en forme conditionnelle standard et des approches VBA avancées pour des besoins complexes. Vous trouverez également des suggestions de dépannage et des conseils pratiques tout au long de l'article.
Grisage des cellules basé sur une autre colonne ou une liste déroulante
VBA : Automatiser le grisage des cellules en fonction d'une autre colonne ou d'une liste déroulante
Grisage des cellules basé sur une autre colonne ou une liste déroulante
Supposons que vous ayez deux colonnes : la colonne A contient vos données principales (telles que des tâches ou des descriptions), et la colonne B contient des indicateurs ou des statuts (comme "OUI"/"NON", ou des sélections à partir d'une liste déroulante). Vous pouvez vouloir griser visuellement les éléments de la colonne A en fonction des valeurs de la colonne B. Par exemple, lorsque la cellule de la colonne B affiche "OUI", la cellule correspondante de la colonne A apparaîtra grisée, indiquant qu'elle est inactive ou terminée. Si la colonne B contient autre chose que "OUI", la colonne A conserve son apparence normale.
Cette approche convient aux feuilles de gestion de tâches, listes de contrôle, workflows ou toute feuille où l'état dans une colonne contrôle la mise en forme d'une autre. Elle garde vos données bien organisées et conviviales, mais repose sur des colonnes bien structurées et alignées (assurez-vous que vos lignes correspondent correctement).
1. Sélectionnez les cellules dans la colonne A que vous souhaitez griser automatiquement en fonction de l'autre colonne. Par exemple, sélectionnez A2:A100 (seules les cellules correspondantes à la plage utilisée dans la colonne B doivent être sélectionnées). Puis allez dans Accueil > Mise en forme conditionnelle > Nouvelle règle.
2. Dans la boîte de dialogue Nouvelle règle de mise en forme, cliquez sur Utiliser une formule pour déterminer les cellules à mettre en forme. Entrez cette formule =B2="OUI" dans la zone Évaluer les valeurs selon cette formule, qui vérifie si la valeur dans la cellule correspondante de la colonne B est "OUI" :
3. Ensuite, cliquez sur le bouton Format dans la fenêtre Format de cellule choisissez une couleur grise dans l'onglet Remplissage . Cette couleur sera utilisée comme couleur de fond pour le grisage.
4. Après avoir défini la couleur, cliquez sur OK pour fermer la fenêtre Format de cellule, puis cliquez à nouveau sur OK pour appliquer votre nouvelle règle de mise en forme.
Désormais, chaque fois que la colonne B affiche "OUI", la cellule correspondante dans la colonne A apparaîtra grisée. Si la colonne B change pour une autre valeur (comme "NON" ou est vide), l'apparence de la colonne A reviendra à la normale. Cette méthode est instantanée et n'a pas besoin de mise à jour manuelle après sa configuration.
Conseils : Pour appliquer cela avec une liste déroulante dans la colonne B, le processus est similaire. Cette approche est particulièrement utile lorsque la colonne de contrôle utilise des choix standardisés, tels que l'état du projet ("En cours", "Terminé"), des cases à cocher ("Fait", "En attente"), ou des listes de validation avec des valeurs spécifiques autorisées.
Pour créer une liste déroulante dans la colonne B (la colonne de contrôle) :
- Sélectionnez les cellules dans la colonne B où vous souhaitez un menu déroulant.
- Cliquez sur Données > Validation des données.
- Dans la boîte de dialogue Validation des données, choisissez Liste dans le menu Autoriser . Dans la zone Source , tapez ou sélectionnez une plage de cellules contenant les valeurs autorisées (par exemple, OUI,NON).
Maintenant, vous avez une liste déroulante dans chaque cellule de la colonne B, permettant aux utilisateurs de choisir parmi des options prédéfinies :
Répétez les étapes de mise en forme conditionnelle ci-dessus, en utilisant une formule qui correspond à l'élément que vous souhaitez déclencher le grisage (par exemple, =B2="OUI"). Après avoir appliqué la mise en forme conditionnelle, vos cellules cibles dans la colonne A se griseront automatiquement dès que "OUI" sera sélectionné dans la liste déroulante de la colonne B.
Conseils et précautions supplémentaires :
- Assurez-vous que votre plage de mise en forme conditionnelle dans la colonne A correspond à la zone de données et s'aligne avec les références de la colonne B. S'ils ne sont pas synchronisés, la mise en forme peut ne pas s'appliquer comme prévu.
- Lorsque vous copiez ou remplissez des données dans les colonnes, vérifiez que les références (par exemple, B2) sont mises à jour correctement.
- Pour de meilleurs résultats, effacez tout ancien formatage de vos plages avant d'appliquer de nouvelles règles.
- Pour supprimer l'effet de grisage, modifiez la valeur de déclenchement dans la colonne B ou supprimez la règle de mise en forme conditionnelle.
- Si votre feuille de calcul est partagée, assurez-vous que les utilisateurs savent quelles valeurs déclencheront le format.
Si la mise en forme conditionnelle ne fonctionne pas comme prévu, vérifiez que les cellules de la colonne B contiennent exactement les valeurs que la formule teste (pas d'espaces supplémentaires, casse correcte si aucune correspondance exacte n'est utilisée, et validation contre des caractères cachés).

Découvrez la magie d'Excel avec Kutools AI
- Exécution intelligente : Effectuez des opérations sur les cellules, analysez les données et créez des graphiques, le tout piloté par des commandes simples.
- Formules personnalisées : Générez des formules adaptées pour rationaliser vos flux de travail.
- Codage VBA : Écrivez et implémentez du code VBA sans effort.
- Interprétation des formules : Comprenez facilement des formules complexes.
- Traduction de texte : Surmontez les barrières linguistiques dans vos feuilles de calcul.
VBA : Automatiser le grisage des cellules en fonction d'une autre colonne ou d'une liste déroulante
Pour des scénarios plus avancés, tels que l'application groupée du formatage, la gestion de conditions multiples et complexes, ou lorsque les règles et limites de la mise en forme conditionnelle ne répondent pas à vos besoins, vous pouvez utiliser du code VBA pour automatiser le grisage des cellules.
Cas d'utilisation courants :
- Griser automatiquement des lignes entières ou des plages spécifiques en fonction de sélections dans des listes déroulantes ou toute logique liée à une autre colonne.
- S'assurer que le formatage reste cohérent même après des importations de données ou des mises à jour de feuille via des macros.
- Appliquer plusieurs états conditionnels qui dépassent les limites de la mise en forme conditionnelle intégrée.
1. Cliquez sur Outils de développement > Visual Basic pour ouvrir l'éditeur VBA (Alt+F11 est un raccourci). Dans la fenêtre VBA, cliquez sur Insertion > Module. Copiez et collez le code suivant dans le nouveau module :
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. Pour exécuter la macro, appuyez sur F5 lorsque la fenêtre de code est active. La macro parcourt chaque ligne de votre feuille de calcul - en commençant à la ligne 2 (afin que votre première ligne puisse rester un en-tête) - et vérifie la colonne B pour la valeur déclencheuse (par défaut, "OUI"). Si elle la trouve, elle remplit la cellule correspondante dans la colonne A en gris. Si la valeur déclencheuse est absente, toute couleur grise précédente est supprimée (réinitialisant la cellule à son apparence par défaut).
Vous pouvez personnaliser les paramètres suivants dans le code :
- checkCol : Colonne à vérifier (par exemple, "B")
- dataCol : Colonne à griser (par exemple, "A")
- triggerValue : Valeur à rechercher pour le grisage (par exemple, "OUI", "Terminé", toute valeur dans votre liste)
Précautions et conseils :
- Cette macro modifie définitivement les arrière-plans des cellules. Si vous souhaitez que les couleurs se mettent à jour en direct lorsque vous modifiez les données, envisagez de relancer la macro après chaque mise à jour ou utilisez le script d'événement Worksheet_Change (réservé aux utilisateurs avancés).
- L'approche n'est pas affectée par le nombre de cellules ou les limites des règles de mise en forme conditionnelle, ce qui la rend idéale pour les grandes plages dynamiques ou de nombreuses conditions.
- Si vous déclenchez accidentellement la macro et souhaitez supprimer les grisages, relancez-la simplement après avoir effacé ou modifié les valeurs pertinentes.
- Vous pouvez étendre l'instruction If pour ajouter plus de conditions (par exemple, grisage basé sur plusieurs choix, colonnes supplémentaires, ou une logique plus complexe).
Utiliser VBA pour griser manuellement ou automatiquement des cellules offre une flexibilité maximale pour des solutions Excel complexes, à grande échelle ou hautement personnalisées.
Meilleurs outils de productivité pour Office
Améliorez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité incomparable. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte l’interface par onglets à Office, simplifiant considérablement votre travail.
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 % et réduit des centaines de clics de souris chaque jour !
Tous les modules complémentaires Kutools. Une seule installation
La suite Kutools for Office regroupe les modules complémentaires pour Excel, Word, Outlook & PowerPoint ainsi qu’Office Tab Pro, idéal pour les équipes travaillant sur plusieurs applications Office.





- Suite tout-en-un — modules complémentaires Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Un installateur, une licence — installation en quelques minutes (compatible MSI)
- Une synergie optimale — productivité accélérée sur l’ensemble des applications Office
- Essai complet30 jours — sans inscription, ni carte bancaire
- Meilleure valeur — économisez par rapport à l’achat d’add-ins individuels