Nous avons précédemment introduit une macro coloriant en rouge les cellules A2 et A4
(voir écran).
Pour ne pas répéter plusieurs fois Worksheets("facture"), nous allons introduire
une variable intermédiaire (notée F) :
Sub colorier()
Set F = Worksheets("facture")
F.Range("A2").Interior.ColorIndex = 3 ' rouge
F.Range("A3").Interior.ColorIndex = 0 ' incolore
F.Range("A4").Interior.ColorIndex = 3 ' rouge
End Sub
Les cellules peuvent être repérées :
-
par une lettre et un nombre : F.Range("A2"), F.Range("A3")...
-
par un numéro de ligne et un numéro de colonne : F.Cells(2,1), F.Cells(3,1)...
Pour colorier en rouge les articles achetés à plus de 2 exemplaires avec
une boucle (For), nous utiliserons la notation Cells car elle est plus pratique :
Sub colorier()
Set F = Worksheets("facture")
For lig = 2 To 4 ' examen des lignes 2, 3 et 4
If (F.Cells(lig, 3) >= 2) Then ' 2 articles ou plus
F.Cells(lig, 1).Interior.ColorIndex = 3 ' rouge
Else
F.Cells(lig, 1).Interior.ColorIndex = 0 ' incolore
End If
Next lig
End Sub
Pour obtenir une macro valide quelque soit le nombre d'articles, il suffit de
calculer le nombre de valeurs de la colonne A (4 avec les données de l'exemple)
et de le faire intervenir dans la boucle :
Sub colorier()
Set F = Worksheets("facture")
n = WorksheetFunction.CountA( F.Columns("A") )
For lig = 2 To n ' lignes 2, 3 ... n
...
Next lig
End Sub
La version finale de cette macro est disponible dans le module Module1 du
fichier ex_final.xlsm.