Variables et Dim
Une variable est une boîte nommée dans laquelle la macro range une information pour s'en resservir : un total, un nom de client, une date, une plage de cellules. Bien les déclarer évite une bonne moitié des bugs.
Télécharger la fiche PDF gratuiteSans inscription, mise en page prête à imprimer01Définition
Une variable est un espace mémoire nommé qui stocke une valeur pendant l'exécution de la macro. On la déclare avec Dim, en précisant son type.
Sub Exemple() Dim client As String Dim quantite As Long Dim prixUnitaire As Double client = "Dupont SARL" quantite = 12 prixUnitaire = 14.5 MsgBox client & " : " & quantite * prixUnitaire & " euros" End Sub
02Les types à connaître
| Type | Contient | Exemple |
|---|---|---|
| Long | Nombre entier (jusqu'à environ 2,1 milliards) | numéro de ligne, quantité |
| Double | Nombre à virgule | prix, taux, montant |
| String | Texte | nom, référence, adresse |
| Boolean | True ou False | trouvé ou non |
| Date | Date et heure | échéance, date de commande |
| Variant | N'importe quoi (type par défaut) | à éviter sauf besoin réel |
| Range | Une cellule ou une plage | la cellule d'un total |
| Worksheet | Une feuille | la feuille Données |
Integer s'arrête à 32 767, alors qu'une feuille compte plus d'un million de lignes. Pour un compteur ou un numéro de ligne, prenez toujours Long.
03Les variables objet et Set
Une variable qui désigne un objet (cellule, feuille, classeur) se remplit avec Set. Sans Set, VBA déclenche l'erreur 91.
Dim ws As Worksheet Dim total As Range Set ws = ThisWorkbook.Worksheets("Ventes") Set total = ws.Range("F2") total.Value = 1500
04Option Explicit
Placée tout en haut du module, la ligne Option Explicit oblige à déclarer chaque variable. Une faute de frappe dans un nom devient alors une erreur signalée à la compilation, au lieu de créer silencieusement une nouvelle variable vide.
Dans l'éditeur VBA : Outils > Options, cochez Déclaration des variables obligatoire. La ligne sera ajoutée automatiquement à chaque nouveau module.
05Portée et constantes
- Déclarée dans une procédure : la variable n'existe que pendant cette procédure.
- Déclarée en haut du module, avec Dim ou Private : elle est partagée par toutes les procédures du module.
- Déclarée Public en haut d'un module standard : elle est visible partout dans le classeur.
Une valeur qui ne change jamais se déclare en constante : Const TAUX_TVA As Double = 0.2.
06Pièges à éviter
Seule la dernière variable est un Long : a est un Variant. Il faut écrire Dim a As Long, b As Long.
ws = Worksheets("Ventes") provoque une erreur. Pour un objet, c'est Set ws = Worksheets("Ventes").
Ranger le contenu d'une cellule texte dans une variable Long déclenche l'erreur 13. Vérifiez avec IsNumeric avant de convertir.
x, a2, temp ne disent rien six mois plus tard. Préférez derniereLigne, totalHT, wsClients.
07Questions fréquentes
Comment déclarer une variable en VBA ?
Une variable est un espace mémoire nommé qui stocke une valeur pendant l'exécution de la macro. On la déclare avec Dim, en précisant son type.
Quel est le piège le plus fréquent avec les variables VBA ?
Dim a, b As Long. Seule la dernière variable est un Long : a est un Variant. Il faut écrire Dim a As Long, b As Long.
La fiche « Variables et Dim » 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.
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-05Toutes 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