VBA : les variables et les constantes
Sommaire
- 1- Objectifs
- 2- Présentation
- 3- Règles sur les noms de variables
- 3.1- Quelques conseils sur les noms
- 4- Déclaration implicite et explicite
- 5- La portée des variables
- 5.1- Déclaration publique
- 5.2- Déclaration privée
- 5.3- Déclaration statique
- 6- Les types de variables
- 7- Exemples avec différents types
- 8- Les Constantes
- 9- Activités : Types de variables
- 9.1- Act01
- 9.2- Act02
- 9.3- Act03
- 9.3.1- Sommaire du cours Excel
VBA : les variables et les constantes
-
Objectifs
- Être capable de déclarer des variables et des constantes en VBA.
-
Présentation
- Les variables servent à stocker et manipuler des informations dans une macro.
- Une variable possède:
- Un nom qui permet d’accéder aux données qu’elle contient: « maVariable ».
- Un type de données: Par exemple, String et Integer dans les exemples ci dessous.
- Lors de la déclaration de variables , vous utilisez généralement une instruction Dim . Une instruction de déclaration peut être placée dans une procédure pour créer une variable au niveau de la procédure . Ou il peut être placé en haut d’un module , dans la section Déclarations, pour créer une variable au niveau du module .
-
Règles sur les noms de variables
- Pour introduire une variable, la première chose est de lui attribuer un
nom
. Les noms sont arbitraires (c’est-à-dire choisis librement par le programmeur) sauf : - maximum 255 caractères (en fait, il est déraisonnable de dépasser 30);
- le premier caractère doit être une lettre. Les lettres accentuées sont autorisées;
- pas de caractères spéciaux point, espace,-,+,*,/,\, :
- En fait, pour séparer des parties du nom, utiliser le souligné_ (ex. nom_client);
- les caractères%,&, !, $, #,@ ne peuvent être employés qu’en fin de nom et ils ont une signification particulière;
- pas de nom identique à un mot-clé (If, For, etc.). Certains noms prédéfinis peuvent être redéfinis, mais c’est déconseillé.
- Vous pouvez donc utiliser les majuscules pour séparer les parties du nom. Si la première apparition du nom est NomClient et que vous tapiez tout en minuscules, l’éditeur VBA substituera les majuscules.
- C’est un excellent moyen de déceler une faute de frappe : utilisez un peu de majuscules dans vos noms, tapez tout en minuscules et vérifiez que l’éditeur supplée des majuscules ; s’il ne le fait pas, c’est qu’il y a une faute de frappe.
-
Quelques conseils sur les noms
- Employez des noms parlants, c’est-à-dire des noms qui font comprendre de façon évidente le rôle que la variable joue dans le programme. x par exemple ne signifie rien alors que Racinecherchée a un sens. Bien sûr, VBA n’impose rien dans ce domaine : les noms lui sont indifférents.
-
Déclaration implicite et explicite
- Si un module de code ne contient pas Option Explicit en haut du module, alors le compilateur créera automatiquement (c’est-à-dire « implicitement ») des variables pour vous lorsque vous les utiliserez. Ils seront par défaut de type variable Variant
- Dans le code ci-dessus, si
Option Explicit
est spécifié, le code s’interrompra car il manque les instructionsDim
pour maVariable et autreVariable. - Pour vous assurer une fois pour toute que cette instruction se trouve au début de chaque module, aller dans le menu Outils -> Options de l’éditeur de code et cochez la case de déclaration de variables obligatoire.
-
La portée des variables
- La portée d’une variable définit quelles procédures ou fonctions peuvent utiliser cette variable.
- Les variables déclarées à l’intérieur d’une procédure ou d’une fonction ne sont accessibles qu’à l’intérieur de cette procédure ou de cette fonction.
- Pour qu’une variable soit accessible à l’ensemble des procédures et des fonctions d’un module, elle doit être déclarée au début du module à l’extérieur de toute procédure et de toute fonction.
- Pour qu’une variable soit accessible à l’ensemble des procédures et des fonctions d’un projet, elle doit être déclarée au début d’un module à l’extérieur de toute procédure et de toute fonction, à l’aide du mot clé Public.
-
Déclaration publique
- Vous pouvez utiliser l’ instruction public pour déclarer des variables publiques au niveau du module.
- Les variables publiques peuvent être utilisées dans toutes les procédures du projet. Si une variable publique est déclarée dans un module standard ou un module de classe , elle peut également être utilisée dans tous les projets qui référencent le projet où la variable publique est déclarée.
-
Déclaration privée
- Vous pouvez utiliser l’ instruction
Private
pour déclarer des variables privées au niveau du module. - Les variables privées ne peuvent être utilisées que par des procédures du même module.
-
Déclaration statique
- Lorsque vous utilisez l’ instruction
Static
au lieu d’une instruction Dim pour déclarer une variable dans une procédure, la variable déclarée conservera sa valeur entre les appels à cette procédure. -
Les types de variables
- La plupart des langages de programmation imposent de déterminer le type de données qui peut être stockée dans une variable lors de sa déclaration. En VBA, ce n’est pas obligatoire.
- Par défaut, une variable non typée est du type Variant, qui permet de stocker n’importe quel type de données.
- Dans un soucis d’efficacité du code, il est préférable de typer ses variables. Une variable de type Variant prend, en effet, plus de mémoire que n’importe quel autre type et utilise plus de ressource système pour son traitement (identification du type effectif de la variable et éventuellement conversion).
- Le tableau suivant illustre les différents types utilisée dans VBA
-
Exemples avec différents types
-
Les Constantes
- Les constantes sont définies en utilisant le mot-clé
Const
à la place de Dim, en faisant suivre le type de la variable par sa valeur derrière le symbole=
: Cons
PI As Single=
3.1415 ‘ Valeur de PIConst
MAJORITE As Integer=
18 ‘ Age correspondant à la majoritéConst
TVA As Single=
19.6 ‘ Taux de TVA en %Const
CAPACITE as Integer=
160 ‘ Nombre maximum d’étudiants dans une promotion-
Activités : Types de variables
-
Act01
- Créez une procédure nommée « activite01« . Dans la procédure, déclarez un entier nommé x. Initialisez x à 30.454. Avec l’instruction Msgbox, affichez le contenu de x.
-
Act02
- Créez une procédure nommée « activite02« . Dans la procédure, déclarez un entier nommé x. Déclarez une seconde variable de type boolean que vous nommerez testBool. Initialisez testBool à false. Assignez testBool à x. Affichez le contenu de x dans un MsgBox.
-
Act03
Les variables sont des valeurs spécifiques qui sont stockées dans la mémoire d’un ordinateur ou dans un système de stockage. Plus tard, vous pouvez utiliser cette valeur dans le code et l’exécuter. L’ordinateur récupérera cette valeur du système et l’affichera dans la sortie. Chacun des types de variables Excel VBA doit recevoir un nom.
Public Sub ExempleDeclaration()
maVariable = 10 '
autreVariable = "Hello World"
'Les deux variables sont de type Variant.
End Sub
Option Explicit
Public Sub ExempleDeclaration()
Dim maVariable As Long
maVariable = 10
Dim autreVariable As String
autreVariable = "Hello World"
End Sub
Il est recommandé d’utiliser Option Explicit dans les modules de code, pour garantir que vous déclarez toutes les variables.
Public strName As String
Private MyName As String
Nom | Type | Taille | Détails | Symbole |
---|---|---|---|---|
Byte | Numérique | 1 Octet | Nombre entier de 0 à 255.Les variables Byte sont utilisées pour stocker des nombres entiers positifs compris entre 0 et 255. Les variables de type Byte sont stockées sous la forme de nombres uniques codés sur 8 bits (1 octet), sans signe. |
|
Integer | Numérique | 2 octets | Nombre entier de -32’768 à 32’767. | % |
Long | Numérique | 4 octets | Nombre entier de – 2’147’483’648 à 2’147’483’647. | & |
Currency | Numérique | 8 octets | Nombre à décimale fixe de -922’337’203’685’477.5808 à 922’337’203’685’477.5807. | @ |
Single | Numérique | 4 octets | Nombre à virgule flottante de -3.402823E38 à 3.402823E38. | ! |
Double | Numérique | 8 octets | Nombre à virgule flottante de -1.79769313486232E308 à 1.79769313486232E308. | # |
String | Texte | 1 octet par caractère | Texte. | $ |
Date | Date | 8 octets | Date et heure. Type de données utilisé pour stocker les dates et les heures sous la forme d’un nombre réel codé sur 64 bits (8 octets). La partie située à gauche du séparateur décimal représente la date, et la partie droite l’heure. | |
Boolean | Boolean | 2 octets | True (vrai) ou False (faux).Les variables Boolean sont stockées sous la forme de nombres codés sur 16 bits (2 octets). | |
Object | Objet | 4 octets | Objet. Dans Excel, un objet peut être un classeur, les feuilles de calcul, un graphique…etc… | |
Variant | Tous | Selon les besoins | Tout type de données (type par défaut si la variable n’est pas déclarée). |
'Exemple : nombre entier
Dim nbEntier As Integer
nbEntier = 12345
'Exemple : nombre à virgule
Dim nbVirgule As Single
nbVirgule = 123.45
'Exemple : texte
Dim varTexte As String
varTexte = "Excel-Pratique.com"
'Exemple : date
Dim varDate As Date
varDate = "20/05/2021"
'Exemple : vrai/faux
Dim varBoolean As Boolean
varBoolean = True
'Exemple : objet (objet Worksheet pour cet exemple)
Dim varFeuille As Worksheet
Set varFeuille = Sheets("Feuil2") 'Set => attribution d'une valeur à une variable objet
'Exemple d'utilisation de la variable objet : activation de la feuille
varFeuille.Activate
Une constante permet d’attribuer un nom à une valeur fixe. La déclaration d’une constante se fait à l’aide du mot clé Const comme suit :
Const NomConstante [As Type] = valeur
Const
INTITULE As String =
« Algorithmique et programmation » ‘ par exemple