Je vois souvent des codes écrit en VBA avec des variables qui ne sont pas déclaré ou mal utilisé. Une variable pas déclaré va fonctionner pareil, avec un type variant par défaut, mais ce n’est pas une bonne façon de programmé et ça peut entrainer des erreurs. Voici donc une petite récapitulation sur les variables.
Type de données
Quand on déclare une variable, on doit lui assigné un type de donné. Si aucun type ne lui est assigné, la variable prend le type Variant, qui est un type fourre-tout. Si on ne sait pas quel type de données la variable va prendre ou si on veut qu’elle prenne plusieurs type, on est quand même mieux de lui déclaré le type Variant que de ne rien lui déclaré du tout. Voici les types de variables les plus utilisés
String Pour les données au formant texte.
Byte Entier compris entre 0 et 255
Integer Entier compris entre –32 768 et 32 767
Long Entier compris entre –2 147 483 648 et 2 147 483 647
Single Nombre à virgule flottante
Currency Type monétaire
Date Heure et date
Boolean Vrai ou Faux
Variant Tout type de données
Objet Objet Microsoft
Déclaration
Quand on nomme une variable, on doit respecter certaines règles.
- Un nom de variable ne doit pas dépasser 255 caractères, mais le plus court est le mieux.
- Éviter les mots réservés, et les caractères #,%,&,!,$, etc
- Le nom ne doit pas avoir d’espace.
- Éviter les accents é,à, etc…
Une façon claire de nommer une variable est de mettre la première lettre de chaque mot en majuscule et de coller tout les mots. J’utilise aussi un préfixe pour déterminer le type de la variable. ( strMonTexte pour une string, intResultat pour une Integer ). C’est pratique quand vous avez une long code avec beaucoup de variable.
Une variable est déclarée avec l’instruction Dim
- Code: Tout sélectionner
Dim MonTexte as string
Après la déclaration, la variable est automatiquement initialisé : 0 pour une variable numérique, vide « » pour une variable string, false pour une boolean, et empty pour une variable variant. On peut déclarer plus d’un variable sur une ligne :
- Code: Tout sélectionner
Dim MonTexte as string, MonNumero as Integer
Pour assigner une valeur à une variable objet il faut utiliser l’instruction Set
- Code: Tout sélectionner
Dim MaSelection as Range
Set MaSelection = Range(“A1:A10”)
Pour libérer une variable objet, on utilise Nothing
Set MaSelection = Nothing
Il est important de libérer les variables objets car elle « mange » de la mémoire.
La porté des variables et leur durée de vie
Il y a trois niveau d’utilisation d’une variable : Public, Private ou Static
Déclaration au niveau procédure
Une variable déclarée dans une procédure est accessible uniquement dans cette procédure. On la déclare avec Dim ou Private. Lorsque la procédure se termine, la variable perd son contenue. Si on veut qu’elle conserve sa valeur, on utilise Static pour la déclarer. La valeur se perd quand même à la fermeture du classeur.
Déclaration au niveau Module
Elle est accessible dans toutes les procédures du module. On la déclare de la même façon qu’au niveau procédure. La variable doit être déclaré au début du module, en dehors de toutes procédures. Si on veut que la variable soit vu partout, on la déclare avec Public.
Déclarer une constante
Une constante est une variable qui ne changera jamais de valeur. Utile entre autre pour stocker un taux d’imposition. Elle est déclarer de la facon suivante.
- Code: Tout sélectionner
Const sngTauxImpot as Single = 7.5