Automatisation des tableaux de bord avec Excel
Chapitre 1. Introduction
Chapitre 2. Prérequis
2.1. Introduction
2.2. Prérequis tableur
2.3. Prérequis Visual Basic
2.3.1. Modules et macros
2.3.2. Cellules
2.3.3. Enregistreur macro
2.3.4. Graphiques
2.4. Exercices
Chapitre 3. Etude de cas : gestion des absences
Chapitre 4. Etude de cas : accidents
Page d'accueil Table des matières Niveau supérieur Page précédente Bas de la page Page suivante Webographie du module Glossaire du module

2.3.2. Cellules

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.

Page d'accueil Table des matières Niveau supérieur Page précédente Haut de la page Page suivante Webographie du module Glossaire du module