Les variables sont un élément indispensable de vos macros sous VBA. Il est important de savoir ce qu’elle recouvrent et leur intérêt.
La définition, donnée par l’aide en ligne, est la suivante :
« Emplacement de stockage nommé contenant des données pouvant être modifiées au cours de l’exécution du programme. Chaque variable possède un nom qui l’identifie de manière univoque au sein de sa portée. Un type de donnée peut être indiqué.
Les noms de variable doivent commencer par un caractère alphabétique, être univoques au sein d’une même portée, ne doivent pas excéder 255 caractères et ne peuvent contenir ni caractère de déclaration de type ni point.«
En clair, vous vous créez un emplacement de stockage d’une donnée, avec un nom unique (de 255 caractères max) pour ne pas mélanger les noms dans la procédure d’exécution. Ce type de stockage peut être défini pour ne conserver qu’un seul type de donnée au besoin.
1. Stocker une donnée en VBA
Ces variables peuvent être utilisées à n’importe quel moment (bon faut que ce soit cohérent dans le code quand même…) dans la procédure pour déterminer une action ou un résultat en fonction de leur valeur stockée.
Prenons un exemple :
Nombre d’adhérents de l’association : 100 personnes
Cotisation annuelle : 20 €
Total cotisation = nbre adhérents x cotisation
soit la procédure suivante :
Sub calcul_a_deux_balles()
xadherent = 100
xcotisation = 20
xtotal = xadherent * xcotisation
MsgBox xtotal
End Sub
Ici, la variable xadherent multipliée à la variable xcotisation se stocke dans la variable xtotal. Pour ceux qui se demandent pourquoi j’ai ajouté un x devant le nom de la variable, c’est une astuce que m’a donné un formateur pour identifier facilement les variables dans du code, surtout utile quand le code est assez long.
2. Déclarer une variable en VBA
Dans un exemple simple et court comme celui du dessus, il n’est pas utile de déclarer une variable. Néanmoins, il est fortement recommandé de déclarer toutes vos variables dans une procédure et, si possible, de leur affecter un type afin d’éviter de stocker du texte dans une variable où l’on attend du numérique.
La déclaration d’une variable en VBA se fait en début de procédure à l’aide de la commande DIM
selon la syntaxe suivante :
Dim NomVariable as Type
Le nom de la variable, nous l’avons vu plus haut est votre choix. Le type de variable peut être divers mais, bien sûr, défini par Visual Basic.
Les différents types sont :
Types | Description du type |
Byte (octet) | Nombre entier compris entre 0 et 255 |
Integer (entier) | Nombre entier compris entre -32 768 et 32 767 |
Long (entier long) | Nombre entier compris entre – 2 147 483 648 et 2 147 483 647 |
Single (simple précision) | Nombre à virgule flottante compris entre -1,4001298E-45 et -3,402823E38 pour les nombres négatifs, entre 1,401298E-45 et 3,402823E38 pour les nombres positifs |
Double (double pécision) | Nombre à virgule flottante compris entre -1,79769373486232E308 et -4,9406564581247E-324 pour les nombres négatifs, entre 4.94065645841247E-324 et 1,79769373486232E308 pour les nombres positifs |
Currency (monétaire) | Nombre à virgule fixe, avec quinze chiffres pour la partie entière et quatre chiffres pour la partie décimale, compris entre -922 337 203 685 477,5808 et 922 337 203 685 477,5807 |
String | Chaîne de caractère |
Date | Dates comprises entre le 01/01/100 et le 31/12/9999, stockées sous la forme de nombres à virgule flottante |
Object | Tout type d’objet (ex workbook) |
Boolean | Expression logique : true ou false |
Variant | Type par défaut. Permet tout type de valeur et peut être converti en tout autre type si sa valeur est convertible. |
A vous de reprendre le type qui vous convient pour votre donnée. Si la valeur ne convient pas, VBA vous renverra un message d’erreur.
Par exemple :
Sub verif()
Dim xmontant As Integer ‘Définit comme un nombre entier
xmontant = « Thierry » ‘Variable est du texte
End Sub
Ce code vous donnera un message d’erreur car du texte n’est évidemment pas compatible avec un nombre entier.
Pour finir, vous avez la possibilité de rendre obligatoire le fait de déclarer une variable dans vos procédures. Pour cela, il faut indiquer l’option EXPLICIT. Pour cela, placez-vous dans la section Déclarations de la fenêtre de code et saisissez Option Explicit.
Vous pouvez également rendre automatique cette saisie si vous modifiez les options générales de VBA, sous Outils / Options / Onglet Editeur / Déclaration Explicite des Variables
Voilà, il vous reste à tester l’utilisation des variables.
Bon code !
J’apprécie particulièrement l’astuce du « x » devant le nom de la variable pour identifier facilement les variables, surtout dans un code plus long. Cela dit, il est crucial pour les novices de comprendre l’importance de déclarer leurs variables, notamment pour éviter des erreurs potentielles dans leurs codes.
Je recommanderais aux débutants de toujours utiliser l’option « Explicit » pour s’assurer que toutes les variables sont correctement déclarées avant de les utiliser.
merci je suis débutant il faut que je m’habitue
Article intéressant, cependant il serait bon de rappeler la notion de visibilité d’une variable (private, public)