💻 Cours de programmation en VBA 📊

🗂️ Le classeur

Pour manipuler un classeur Excel avec VBA, il est essentiel de savoir lire et écrire des données dans les cellules. Ces opérations sont la base de toute macro.

Récupérer les données d’une cellule spécifique

On peut accéder à la valeur d’une cellule de plusieurs manières. La syntaxe la plus complète est :


Value_A1 = Workbooks("nom_fichier.xlsm").Sheets("nom_feuille").Range("A1").Value

Explications pour débutants :

Si le classeur n’est pas précisé, VBA utilisera le classeur actif. Si la feuille n’est pas précisée, VBA utilisera la feuille active.

Utiliser Cells pour identifier une cellule par ligne et colonne

Au lieu de "Range", on peut utiliser "Cells", qui est parfois plus pratique pour les boucles :


Value_A2 = Cells(2, 1).Value   'Cells([n°ligne], [n°colonne])

Ici, Cells(2,1) correspond à la cellule A2 : ligne 2, colonne 1.

Attributs des objets Range et Cells

Les objets Range et Cells ont des propriétés qui permettent de récupérer non seulement la valeur, mais aussi d’autres informations utiles :

Propriétés de Range


a = Range("A1").Value          'Valeur (ou tableau si plusieurs cellules)
b = Range("A1").Formula        'Formule en notation anglaise (ex: "=SUM($A$2:$A$10)")
c = Range("A1").FormulaLocal   'Formule en français (ex: "=SOMME($A$2:$A$10)")
d = Range("A1").Left           'Position horizontale par rapport à la feuille (pixels)
e = Range("A1").Top            'Position verticale (pixels)
f = Range("A1").MergeCells     'True si la cellule est fusionnée
g = Range("A1").Name           'Nom complet de la cellule ("=Feuil1!$A$1")

Propriétés de Cells


a = Cells(1, 1).Value         'Valeur de la cellule
b = Cells(1, 1).Formula       'Formule anglaise
c = Cells(1, 1).FormulaLocal  'Formule française
d = Cells(1, 1).Left          'Position horizontale (pixels)
e = Cells(1, 1).Top           'Position verticale (pixels)
f = Cells(1, 1).MergeCells    'True si la cellule est fusionnée
g = Cells(1, 1).Name          'Nom complet ("=Feuil1!$A$1")
h = Cells(1, 1).Address       'Adresse de la cellule ("$A$1")

Lire et écrire des valeurs

Pour lire une cellule, on affecte sa valeur à une variable :


variable = Cells(1, 1).Value   'Récupère la valeur de la cellule A1

Pour écrire dans une cellule, on affecte la variable à la cellule :


Cells(1, 1).Value = variable   'Écrit la valeur de la variable dans A1

Résumé