Les variables en VBA Excel : types, déclarations et bonnes pratiques
Les variables sont des éléments essentiels en programmation VBA Excel. Elles permettent de stocker et manipuler des données temporairement dans la mémoire de l’ordinateur. Maîtriser leur utilisation est crucial pour développer des macros efficaces et performantes.
Types de variables en VBA
VBA propose différents types de variables pour s’adapter aux besoins spécifiques :
- Integer : Nombres entiers de -32 768 à 32 767
- Long : Nombres entiers de -2 147 483 648 à 2 147 483 647
- Single : Nombres décimaux simple précision
- Double : Nombres décimaux double précision
- String : Chaînes de caractères
- Boolean : Valeurs True ou False
- Date : Dates et heures
- Object : Références à des objets Excel
- Variant : Peut contenir tout type de données
Déclarer des variables
La déclaration des variables se fait généralement en début de procédure avec le mot-clé Dim :
Dim nomVariable As TypeVariable
Par exemple :
Voici des exemples pour chaque type de variable en VBA Excel :
Integer : Nombres entiers de -32 768 à 32 767
Dim age As Integer
age = 30
' Exemple d'utilisation
If age >= 18 Then
Debug.Print "Majeur"
Else
Debug.Print "Mineur"
End If
Long : Nombres entiers de -2 147 483 648 à 2 147 483 647
Dim population As Long
population = 67000000
' Exemple d'utilisation
Debug.Print "La population est de " & population & " habitants"
Single : Nombres décimaux simple précision
Dim poids As Single
poids = 75.5
' Exemple d'utilisation
Debug.Print "Le poids est de " & poids & " kg"
Double : Nombres décimaux double précision
Dim pi As Double
pi = 3.14159265358979
' Exemple d'utilisation
Dim rayon As Double
rayon = 5
Dim aire As Double
aire = pi * rayon ^ 2
Debug.Print "L'aire du cercle est " & aire
String : Chaînes de caractères
Dim nom As String
nom = "Dupont"
' Exemple d'utilisation
Debug.Print "Bonjour, M. " & nom
Boolean : Valeurs True ou False
Dim estValide As Boolean
estValide = True
' Exemple d'utilisation
If estValide Then
Debug.Print "La condition est vraie"
Else
Debug.Print "La condition est fausse"
End If
Date : Dates et heures
Dim dateNaissance As Date
dateNaissance = #1/15/1990#
' Exemple d'utilisation
Debug.Print "Né le " & Format(dateNaissance, "dd/mm/yyyy")
Object : Références à des objets Excel
Dim ws As Object
Set ws = ThisWorkbook.Worksheets("Feuil1")
' Exemple d'utilisation
ws.Range("A1").Value = "Bonjour"
Variant : Peut contenir tout type de données
Dim donnee As Variant
' Peut contenir différents types
donnee = 42 ' Nombre
donnee = "Bonjour" ' Chaîne
donnee = #1/1/2023# ' Date
donnee = True ' Booléen
' Exemple d'utilisation
Debug.Print "Type de donnée : " & TypeName(donnee)
Ces exemples illustrent l’utilisation de chaque type de variable en VBA Excel. Ils montrent comment déclarer, initialiser et utiliser ces variables dans des contextes simples. La compréhension de ces types de base est essentielle pour développer des macros efficaces et bien structurées en VBA Excel.
Dim age As Integer
Dim nom As String
Dim estValide As Boolean
On peut aussi déclarer plusieurs variables sur une même ligne :
Dim prenom As String, dateNaissance As Date, salaire As Double
Bonnes pratiques pour l’utilisation des variables
- Toujours déclarer les variables avec leur type pour éviter les erreurs et optimiser les performances
- Utiliser des noms explicites pour faciliter la compréhension du code
- Préférer le type Long à Integer pour les nombres entiers
- Utiliser Option Explicit en début de module pour forcer la déclaration
- Éviter l’utilisation excessive du type Variant
Options avancées pour les variables
- Static : Conserve la valeur entre les appels de procédure
- Public : Rend la variable accessible dans tout le projet
- Private : Limite l’accès à un module spécifique
Voici des explications simples sur quand utiliser Static, Public ou Private en VBA Excel, accompagnées d’exemples concrets :
Quand utiliser les variables Static
Utilisez Static lorsque vous voulez qu’une variable conserve sa valeur entre les appels d’une procédure.
Exemple : Compteur d’appels d’une fonction
Function CompterUtilisations() As Integer
Static compteur As Integer
compteur = compteur + 1
CompterUtilisations = compteur
End Function
Sub TestCompteur()
Debug.Print CompterUtilisations() ' Affiche 1
Debug.Print CompterUtilisations() ' Affiche 2
Debug.Print CompterUtilisations() ' Affiche 3
End Sub
Quand utiliser les variables Public
Utilisez Public quand vous avez besoin d’accéder à une variable depuis plusieurs modules de votre projet.
Exemple : Paramètres globaux de l’application
' Dans un module nommé "Variables_Globales"
Public NomUtilisateur As String
Public DateDerniereConnexion As Date
' Dans un autre module
Sub DefinirUtilisateur()
NomUtilisateur = "Alice"
DateDerniereConnexion = Date
End Sub
' Dans un troisième module
Sub AfficherInfosUtilisateur()
MsgBox "Utilisateur : " & NomUtilisateur & vbNewLine & _
"Dernière connexion : " & DateDerniereConnexion
End Sub
Quand utiliser les variables Private
Utilisez Private pour limiter l’accès à une variable au sein d’un seul module, généralement pour des données internes au module.
Exemple : Constante interne à un module de calcul
' Dans un module de calcul
Private Const PI As Double = 3.14159
Private Function CalculerAireCercle(rayon As Double) As Double
CalculerAireCercle = PI * rayon ^ 2
End Function
Public Sub AfficherAireCercle(rayon As Double)
Dim aire As Double
aire = CalculerAireCercle(rayon)
MsgBox "L'aire du cercle est : " & aire
End Sub
' Dans un autre module, on ne peut pas accéder à PI
' mais on peut utiliser AfficherAireCercle
Sub AutreModule()
' Ceci fonctionnerait
AfficherAireCercle 5
' Ceci générerait une erreur car PI est Private
' MsgBox PI
End Sub
Ces exemples illustrent les cas d’utilisation typiques de chaque type de déclaration. Static est utile pour maintenir un état interne à une procédure, Public pour partager des données dans tout le projet, et Private pour encapsuler des données au sein d’un module spécifique.
Caractères de type pour les variables en VBA
On peut utiliser des caractères spéciaux pour définir implicitement le type :
- % : Integer
- & : Long
- ! : Single
- # : Double
- $ : String
Par exemple :
' Déclaration et initialisation de variables avec des caractères spéciaux
Dim age% ' Integer
age% = 30
Dim population& ' Long
population& = 67000000
Dim temperature! ' Single
temperature! = 22.5
Dim pi# ' Double
pi# = 3.14159265358979
Dim nom$ ' String
nom$ = "Dupont"
' Exemple d'utilisation
Sub AfficherInfos()
Debug.Print "Age : " & age%
Debug.Print "Population : " & population&
Debug.Print "Température : " & temperature! & " °C"
Debug.Print "Pi : " & pi#
Debug.Print "Nom : " & nom$
End Sub

Les commentaires
Les commentaires sont un élément essentiel dans le développement VBA Excel. Ils permettent d’expliquer le code, facilitant sa compréhension et sa maintenance.
Types de commentaires
Il existe plusieurs façons d’ajouter des commentaires en VBA :
- Apostrophe (‘) : La méthode la plus courante pour commenter une ligne
- Mot-clé REM : Peut être utilisé au début d’une ligne
- Commentaires en bloc : Pour commenter plusieurs lignes à la fois
Techniques de commentaires
- Commentaires en ligne : Placez un commentaire à la fin d’une ligne de code
Dim age As Integer ' Déclare la variable pour l'âge
- Commentaires de bloc : Utilisez plusieurs lignes pour des explications détaillées
' Cette fonction calcule le salaire total
' en prenant en compte le salaire de base
' et les heures supplémentaires
Function CalculerSalaireTotal(...)
- Commentaires avec REM : Le mot-clé REM peut être utilisé pour créer également des commentaires :
REM Ceci est un commentaire utilisant REM
x = 1 REM Initialisation de la variable x
Il est important de noter que REM doit être placé au début de la ligne ou après une instruction, séparé par un espace.
Contrairement à d’autres langages, VBA ne permet pas de commentaires multi-lignes avec des délimiteurs de début et de fin. Chaque ligne de commentaire doit commencer par ‘ ou REM.
- Commentaires de documentation : Placez-les au début de chaque module ou procédure
' Nom : CalculerTVA
' Description : Calcule la TVA d'un montant donné
' Paramètres :
' - montantHT (Double) : Montant hors taxes
' - tauxTVA (Double) : Taux de TVA (par défaut 20%)
' Retour : Montant de la TVA (Double)
Function CalculerTVA(montantHT As Double, Optional tauxTVA As Double = 0.2) As Double
En pratique, l’utilisation de l’apostrophe (‘) est généralement préférée à REM car elle est plus concise.
Bonnes pratiques pour les commentaires
- Commentez le but de chaque procédure ou fonction
- Expliquez les sections complexes du code
- Utilisez des commentaires pour décrire les variables importantes
- Évitez les commentaires évidents ou redondants
- Mettez à jour les commentaires lorsque vous modifiez le code
- Utilisez le bouton Commenter/Décommenter dans la barre d’outils de l’éditeur VBA
- Raccourcis clavier : Configurez des raccourcis pour commenter/décommenter rapidement
Conclusion
Les commentaires bien utilisés améliorent considérablement la lisibilité et la maintenabilité du code VBA. En adoptant ces bonnes pratiques, vous faciliterez non seulement votre propre travail, mais aussi celui de vos collaborateurs qui pourraient avoir à lire ou modifier votre code à l’avenir.
Maîtriser l’utilisation des variables en VBA Excel est essentiel pour développer des macros performantes et fiables. En déclarant correctement vos variables et en choisissant les types appropriés, vous optimiserez vos codes et éviterez de nombreuses erreurs. N’hésitez pas à approfondir vos connaissances sur ce sujet fondamental de la programmation VBA.
Voici les liens internes et externes pour compléter l’article sur les variables en VBA Excel :
Liens internes
Liens externes
Ces liens permettront aux lecteurs d’approfondir leurs connaissances sur les variables en VBA Excel et d’explorer d’autres aspects de la programmation VBA.