Tout ce que vous devez savoir sur les variables VBA

Variable VBA

Dans VBA, une variable est comme une boîte de stockage qui est elle-même stockée dans votre système, mais elle peut y stocker une valeur pour vous et vous pouvez utiliser cette valeur dans votre code et modifier cette valeur si vous le souhaitez (comme son nom l’indique, « VARIABLE » est quelque chose dont la valeur n’est pas fixe).

Pour déclarer une variable, vous devez suivre une procédure simple :

  1. Utilisez le mot-clé « Dim » au début.
  2. Spécifiez un nom pour la variable.
  3. Utilisez le mot-clé « As » après le nom.
  4. Spécifiez le « Type de données » de la variable en fonction de la valeur que vous souhaitez lui attribuer.

Ici, nous avons utilisé le nom « startDate » et spécifié le type de données « Date ». Après avoir déclaré une variable, vous pouvez lui attribuer une valeur.

Dim startDate As Date

startDate = “11/10/2018”

Désormais, chaque fois que vous utilisez la date de début dans votre code, Excel utilise la date que vous lui avez attribuée.

Types de données

Dans VBA, les types de données sont essentiellement les types de données que vous devez spécifier lors du stockage d’une valeur dans une variable ou une constante. Par exemple, si vous souhaitez stocker une date dans une variable, vous devez d’abord déclarer cette variable date comme son type de données.

Types de données expliqués

Voici la liste complète des types de données que vous pouvez utiliser dans VBA.

Type de données
Octets utilisés
Plage de valeurs
Octet
1 octet
0 à 255
booléen
2 octets
Vrai ou faux
Entier
2 octets
-32 768 à 32 767
Long (entier long)
4 octets
-2 147 483 648 à 2 147 483 647
Seul
4 octets
-3,402823E38 à -1,401298E-45 pour les valeurs négatives ; 1.401298E-45 à 3.402823E38 pour les valeurs positives
Double
8 octets
-1.79769313486231E308 à -4.94065645841247E-324 pour les valeurs négatives ; 4.94065645841247E-324 à 1.79769313486232E308 pour les valeurs positives
Monnaie
8 octets
-922 337 203 685 477,5808 à 922 337 203 685 477,5807
Décimal
14 octets
+/-79 228 162 514 264 337 593 543 950 335 sans point décimal ; +/-7,9228162514264337593543950335 avec 28 décimales à droite de la virgule
Date
8 octets
1er janvier 100 au 31 décembre 9999
Objet
4 octets
Toute référence d’objet
Chaîne (longueur variable)
10 octets + longueur de chaîne
0 à environ 2 milliards
Chaîne (longueur fixe)
Longueur de chaîne
1 à environ 65 400
Variante (avec numéros)
16 octets
Toute valeur numérique jusqu’à la plage d’un Double
Variante (avec personnages)
22 octets + longueur de chaîne
Même plage que pour la chaîne de longueur variable
Défini par l’utilisateur
Varie
La plage de chaque élément est la même que la plage de son type de données
 
 
 

Ceci est fortement recommandé pour déclarer le type de données pour les variables et les constantes .

Lorsque vous spécifiez le type de données pour une variable ou une constante, cela garantit la validité de vos données et vous empêche d’entrer un type de données non valide. Si vous omettez le type de données, VBA applique le type de données Variant à votre variable – c’est le plus flexible et VBA ne devinera pas quel doit être le type de données.

Astuce : La meilleure façon de ne pas ignorer la spécification des types de données est d’utiliser l’ option explicite tout en haut du module avant de commencer tout code.

Explicitement ou implicitement

Vous pouvez déclarer une variable explicitement ou implicitement. Une déclaration explicite signifie qu’avant d’affecter une valeur à une variable, vous la déclarez et définissez sa valeur. L’AVANTAGE de ceci est lorsque vous le définissez et son type de données VBA stocke toujours les données dans ce format.

Voici un exemple :

Dim myDate As Date

Ainsi, lorsque vous stockez de la valeur dans ce VBA, il appliquera toujours le format de date à cela. Mais avec la déclaration implicite, vous ne vous embêtez pas avec cette instruction de déclaration explicite. Au lieu de cela, vous définissez la valeur de la variable et l’utilisez dans l’instruction de code. Dans la déclaration implicite, VBA stocke les données dans un type de variable Variant car vous n’avez pas spécifié le type.

En d’autres termes, si vous utilisez simplement une variable dans votre code sans la déclarer, c’est implicite. Ci-dessous un exemple de déclaration implicite :

myDate = “11/10/1990”

C’est ainsi que vous affectez simplement la valeur à une variable et que vous l’utilisez dans vos instructions de code. Si vous me demandez, c’est toujours, je veux dire toujours mieux de déclarer une variable avant de l’utiliser. Ce n’est pas seulement une bonne pratique, mais cela accélère également l’exécution de votre code et le rend plus facile à comprendre.

Variable statique

Eh bien, je vous ai dit que la variable est l’endroit où vous pouvez modifier la valeur, mais c’est quelque chose de différent. Avec une variable normale lorsqu’une procédure est terminée, la valeur stockée dans la variable serait supprimée de la mémoire de VBA, mais, si vous ne voulez pas perdre cette valeur, vous pouvez rendre cette variable statique.

Pour rendre une variable statique afin qu’elle conserve la valeur, il vous suffit d’utiliser le mot-clé « Static » au lieu d’utiliser « Dim ».

Nommer une variable

Vous pouvez nommer une variable (ces règles s’appliquent également au nom de la constante et de la procédure) comme vous le souhaitez, mais vous devez suivre quelques règles :

  • Vous pouvez utiliser des alphabets, des chiffres et certains caractères de ponctuation, mais le premier caractère du nom doit être un alphabet.
  • Les espaces ou les points ne sont pas des caractères valides à utiliser dans le nom, mais vous pouvez utiliser un trait de soulignement pour rendre le nom lisible.
  • Vous ne pouvez pas utiliser de caractères spéciaux dans un nom.
  • La longueur d’un nom peut être de 254 caractères mais en utilisant un nom qui n’a pas de sens.
  • Il existe de nombreux mots réservés, qui sont des mots que vous ne pouvez pas utiliser pour le nom. Si vous essayez d’utiliser l’un de ces mots, vous obtenez un message d’erreur.
  • VBA ne fait pas de différence entre les cas.

Portée

À ce stade, vous connaissez les procédures et quelle procédure est utile dans quelle situation, vous découvrez également les variables et comment définir leurs types de données.

La prochaine chose importante est de comprendre la portée, ce qui signifie la disponibilité. C’est là qu’il peut être utilisé. Lorsque vous définissez une variable, la portée définit si vous pouvez les utiliser en dehors de leur procédure d’accueil ou non. Il existe trois manières de définir les portées des variables (constantes et même avec toute la procédure).

  1. Niveau procédure : vous ne pouvez utiliser une variable que dans la même procédure où vous la déclarez.
  2. Niveau module (privé) : rend une variable accessible à partir de toutes les procédures d’un module.
  3. Niveau module (Public) : Rend une variable accessible depuis toutes les procédures de tous les modules.

La portée par défaut d’une variable est la procédure (Procedure-Level) dans laquelle cette variable est déclarée.

Mais permettez-moi de partager quelque chose du monde réel avec vous.

Je travaille dans un espace de coworking et l’endroit où je suis assis est au premier étage du bâtiment à trois étages. Je m’assois presque tous les jours sur le même siège. Ainsi, si vous déclarez une variable avec la portée au niveau de la procédure, vous ne pouvez l’utiliser que dans la même procédure. Tout comme je suis assis sur le même siège au même étage tous les jours. Mais laissez-moi vous en dire plus : même si je suis assis au premier étage, je peux aussi utiliser n’importe quel siège aux autres étages. Et dans l’instantané ci-dessous, nous avons déclaré la variable « myName » en haut du module en utilisant le mot-clé Private avant de commencer toute procédure et je l’ai utilisée dans les trois codes. Considérez ce module comme un bâtiment où vous avez différents étages (Procédures) et comme vous avez déjà déclaré la variable au début du module, vous pouvez utiliser n’importe laquelle des procédures de ce module. C’est ce qu’on appelle la portée au niveau du module privé. Maintenant, voici la dernière chose : mon bureau a des succursales dans différentes villes du pays et si j’y vais, je peux aller dans ces bureaux et utiliser n’importe lequel des sièges si je le souhaite. Ainsi, si vous avez différents modules dans votre classeur, vous pouvez utiliser une variable dans tous ces modules en la déclarant comme Public.

Ajouter un commentaire

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