[VBA] Déclaration de variable

Partagez vos connaissances et vos astuces Excel ...

[VBA] Déclaration de variable

Messagepar Math » 31 Mars 2009, 16:25

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 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
Avatar de l’utilisateur
Math
Membre dévoué
 
Messages: 726
Inscription: 05 Déc 2007, 18:57
Localisation: Québec, Canada
Version Excel: 2003 FR

Messagepar Mytå » 31 Mars 2009, 23:22

Salut le forum

Cette ficelle aurait bien pu être ajoutée en complément de Déclaration de variables (raccourci).

Mytå
Mytå
 

Messagepar Math » 01 Avr 2009, 02:31

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
Avatar de l’utilisateur
Math
Membre dévoué
 
Messages: 726
Inscription: 05 Déc 2007, 18:57
Localisation: Québec, Canada
Version Excel: 2003 FR


Retourner vers Cours et astuces

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités