Accueil/Cours gratuits/Bibliothèque VBA/Objets Excel/Range et Cells
Cours VBA gratuit | Objets Excel

Range et Cells

Gratuit, sans inscription Niveau 1 / 3 | Découverte Lecture 9 min V1.2 | 29/10/2026

Presque toutes les macros finissent par lire ou écrire dans une cellule. Range et Cells sont les deux façons de désigner l'endroit exact où agir : l'une avec une adresse, l'autre avec des numéros.

Télécharger la fiche PDF gratuiteSans inscription, mise en page prête à imprimer

01Définition

En une phrase

Range désigne une cellule ou une plage par son adresse ("B3", "A1:D10"). Cells désigne une cellule par ses numéros de ligne et de colonne, ce qui la rend idéale dans une boucle.

Range("B3")

Lisible, parfait pour une adresse fixe ou une plage nommée.

Cells(3, 2)

Ligne 3, colonne 2 : la même cellule B3, mais les numéros peuvent être des variables.

02Désigner des cellules

ÉcritureDésigne
Range("A1")la cellule A1
Range("A1:D10")la plage A1 à D10
Range("TauxTVA")la plage nommée TauxTVA
Cells(5, 3)la cellule C5 (ligne 5, colonne 3)
Cells(5, "C")la même cellule, colonne en lettre
Range(Cells(2, 1), Cells(10, 4))la plage A2:D10
Rows(4) , Columns("B")une ligne ou une colonne entière

03Lire et écrire

Value, Formula et effacement
Range("B2").Value = 150                    ' écrire une valeur
total = Range("B10").Value                 ' lire une valeur
Range("B10").Formula = "=SUM(B2:B9)"       ' formule en anglais, séparateur virgule
Range("B11").FormulaLocal = "=MOYENNE(B2:B9)"  ' formule en français
Range("A2:F500").ClearContents             ' efface les valeurs, garde la mise en forme
Range("A2:F500").Clear                     ' efface tout, mise en forme comprise

04Se déplacer avec Offset et Resize

  • Offset(lignes, colonnes) décale une référence : Range("B2").Offset(1, 0) désigne B3, Offset(0, 2) désigne D2.
  • Resize(lignes, colonnes) change la taille : Range("A2").Resize(10, 3) désigne A2:C11.
Écrire à droite de chaque cellule
Dim c As Range
For Each c In Range("A2:A20")
    c.Offset(0, 1).Value = Len(c.Value)   ' nombre de caractères en colonne B
Next c

05Inutile de sélectionner

L'enregistreur écrit Range("A1").Select puis Selection.Value = .... En VBA écrit à la main, on agit directement : Range("A1").Value = .... Le code est plus court, plus rapide, et ne dépend plus de la cellule sélectionnée.

06Pièges à éviter

⚠️ PiègeLa feuille active par défaut

Range("A1") sans préciser de feuille désigne la feuille active au moment de l'exécution. Qualifiez vos références : Worksheets("Ventes").Range("A1").

⚠️ PiègeCells non qualifié dans Range

Worksheets("Ventes").Range(Cells(1, 1), Cells(5, 2)) plante si Ventes n'est pas active, car les Cells désignent la feuille active : c'est l'erreur 1004. Écrivez ws.Range(ws.Cells(1, 1), ws.Cells(5, 2)).

⚠️ PiègeFormula attend l'anglais

.Formula = "=SOMME(A1:A5)" provoque une erreur. Avec .Formula, on écrit les fonctions en anglais et on sépare par des virgules ; avec .FormulaLocal, en français avec des points-virgules.

07Questions fréquentes

Quelle est la différence entre Range et Cells en VBA ?

Range désigne une cellule ou une plage par son adresse ("B3", "A1:D10"). Cells désigne une cellule par ses numéros de ligne et de colonne, ce qui la rend idéale dans une boucle.

Quel est le piège le plus fréquent avec Range et Cells ?

La feuille active par défaut. Range("A1") sans préciser de feuille désigne la feuille active au moment de l'exécution. Qualifiez vos références : Worksheets("Ventes").Range("A1").

La fiche « Range et Cells » est-elle gratuite ?

Oui. La fiche est en accès libre et gratuit, sans inscription : vous pouvez la lire en ligne et télécharger sa version PDF. Elle fait partie du cours VBA gratuit de mesetudesdecas.fr, qui compte 21 fiches.

Pour les formateurs

Passez de la fiche à la mise en situation

Les études de cas mesetudesdecas.fr placent vos apprenants face à un vrai besoin d'entreprise. L'étude de cas XL-05 fait automatiser un devis commercial de bout en bout, macros comprises, avec énoncé, corrigé et pas-à-pas du formateur.

Découvrir l'étude de cas XL-05
Voir aussi

Toutes les fiches du cours VBA gratuit

Voir aussi le cours gratuit sur les formules Excel

Fiche V1.2 | Dernière mise à jour : 29/10/2026 | Clément Delobel, formateur Excel et VBA