Doug a une table de données qui comprend une colonne de numéros de pièces. Ces données sont triées par la colonne des numéros de pièce. Les numéros de pièce ne sont pas uniques; par exemple, certaines références apparaissent trois fois dans le tableau et d’autres cinq fois. Doug aimerait formater le tableau de sorte que les lignes du tableau aient un effet de «barre verte».

Par exemple, les cinq premières lignes peuvent avoir le même numéro de pièce, donc Doug veut que ces lignes soient ombrées en vert. Les deux lignes suivantes ont un numéro de pièce différent, il veut donc que celles-ci n’aient pas d’ombrage vert. Les trois lignes suivantes ont le numéro de pièce suivant, donc celles-ci devraient être à nouveau vertes, et ainsi de suite. Chaque fois que le numéro de pièce change, l’ombrage de la ligne (vert ou non vert) doit changer.

Un moyen simple d’accomplir cette tâche consiste à créer une colonne d’aide qui affiche un 0 ou un 1 en fonction du numéro de pièce dans la colonne A.

Par exemple, disons que vous vouliez mettre votre colonne d’aide dans la colonne Z. Vous pouvez mettre la formule suivante dans la cellule Z2:

=IF(A2=A1,Z1,1-Z1)

Copiez la formule dans la colonne Z pour chaque ligne de votre tableau de données. Une fois terminé, la colonne Z contiendra 1 ou 0, basculant uniquement lorsque le numéro de pièce dans la colonne A change. Vous pouvez ensuite utiliser la valeur de la colonne Z comme valeur de contrôle pour votre mise en forme conditionnelle. Tout ce que vous avez à faire est de définir la formule au format afin que si la colonne Z contient 1, vos cellules soient vertes.

Vous devez noter qu’une fois que votre mise en forme conditionnelle est configurée et fonctionne correctement, vous pouvez masquer la colonne Z afin que ce ne soit pas une distraction pour quiconque utilise votre table de données.

Si vous ne pouvez pas utiliser une colonne d’aide pour une raison quelconque, il existe une formule assez cool que vous pouvez utiliser dans le format conditionnel lui-même. Assurez-vous simplement que votre tableau de données est trié par colonne A (les numéros de pièce), puis sélectionnez toutes les cellules du tableau, à l’exception des en-têtes de colonne. Puis définissez un format conditionnel qui utilise cette formule:

=MOD(SUMPRODUCT(--(($A$1:INDIRECT(ADDRESS(ROW()-1,1,3,1))

=$A$2:INDIRECT(ADDRESS(ROW(),1,3,1)))=FALSE)),2)

N’oubliez pas qu’il s’agit d’une formule unique, entrée dans la règle de mise en forme conditionnelle, le tout sur une seule ligne. Cette formule suppose que les numéros de pièce sont dans la colonne A et que la table de données commence dans la cellule A2.

En outre, si vous supprimez des lignes dans la table de données, vous souhaiterez réappliquer le format conditionnel à toutes les cellules de la table de données.

Enfin, il existe un certain nombre de macros que vous pouvez écrire pour appliquer la mise en forme. Tout ce que vous avez à faire est de faire passer la macro dans les cellules de la colonne A, de déterminer si le numéro de pièce change, puis d’appliquer la mise en forme correcte en fonction de ce qu’elle découvre. Voici un exemple:

Sub ShadeRows()

Dim ThisOrder As Long     Dim PrvOrder As Long     Dim LastRow As Long     Dim Clr As Integer     Dim R As Long

LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row

' Enter desired color codes here     ' (24 is Lavender, 35 is Light Green)

RwColor = Array(24, 35)



Clr = 0  ' Used to toggle between the two colors

For R = 2 To LastRow         ThisOrder = Cells(R, 1).Value         PrvOrder = Cells(R - 1, 1).Value         If ThisOrder <> PrvOrder Then Clr = 1 - Clr

' Select only the columns that are used         Range("A" & R & ":M" & R).Select         Selection.Interior.ColorIndex = RwColor(Clr)

Next R End Sub

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (10518) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Changing_Shading_when_a_Column_Value_Changes [Changer l’ombrage quand une valeur de colonne change].