Variables en VBA

Utilisation des variables en VBA

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

 

Options VBA: variables en VBA

 

Voilà, il vous reste à tester l’utilisation des variables.

 Bon code !



3 réflexions sur “Utilisation des variables en VBA”

  1. 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.