[VBA] Déclaration de variable
Bonjour à tous,
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 variable est déclarée avec l’instruction Dim
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 :
Dim MonTexte as string, MonNumero as Integer
Pour assigner une valeur à une variable objet il faut utiliser l’instruction Set
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.
Const sngTauxImpot as Single = 7.5
Salut le forum
Cette ficelle aurait bien pu être ajoutée en complément de Déclaration de variables (raccourci).
Mytå
t'as raison Myta, je me doutais que le sujet avait déjà du être traiter, mais je me disais que ça pourrais être utile au gens qui commence en VBA
Bonjour
Je suis débutant
Cela marche dans une méthode, mais je voudrais utiliser une constante reconnue par toutes les méthodes que j'écris.
La constante n'est pas reconnue même écrite en tête d'une "feuille de méthodes"
Je n'ai pas accès à la méthode main ou je ne sais pas y accéder.
Puisqu'on est sur le sujet de déclaration de variables, pour se forcer à déclarer toutes les variables pour être sûr qu'elles sont du type souhaité, il faut ajouter
Option Explicit
au code
Bonjour
Je reviens sur ce "vieux tuto" sue je n'avais jamais vu pour apporter une légère modification (disons précision) à
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.
Const sngTauxImpot as Single = 7.5
Une constante par définition n'est pas une variable !
De plus la syntaxe utilisée par Math correspond à une constante typée !
Une constante peut se déclarer plus simplement par :
Const sngTauxImpot = 7.5
Puisqu'elle est toujours "auto-typée" de manière intrinsèque
Ce que je confirme par contre c'est qu'une constante est une constante (ce n'est pas un Lapalissade)
Je veux dire qu'elle ne doit jamais, absolument jamais varier !
Il est par exemple une très mauvaise idée de déclarer des "numéro de colonnes" comme étant des constantes comme on le voit trop souvent... Lorsque que le tableau évoluera (et un tableau évoluera toujours) il faut alors ré-écrire toutes les constantes !
Une constante devrait être réservée à des indicateurs, des sémaphores pour la programmation, mais pas pour la gestion du classeur lui-même !
Autre précision :
Autant que faire ce peut : utilisez toujours des variables qui veulent dire quelque chose => pas de I, J, K