VBA : les variables et les constantes

VBA : les variables et les constantes

  1. Objectifs

    • Être capable de déclarer des variables et des constantes en VBA.
  2. 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 .
    • 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.

    VBA les variables et les constantes

  3. 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.
  4. 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
    • Public Sub ExempleDeclaration()    
          maVariable = 10                  ' 
          autreVariable = "Hello World"
          'Les deux variables sont de type Variant.
      End Sub
    • Dans le code ci-dessus, si Option Explicit est spécifié, le code s’interrompra car il manque les instructions Dim pour maVariable et autreVariable.
    • 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.

    • 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.
    • Les variables en VBA

  5. 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.
      • Public strName As String 
      • 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.
      • Private MyName As String 
      • 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.






  6. 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
      • 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).
  7. Exemples avec différents types

    • '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
  8. Les Constantes

    • 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

    • 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 PI
    • Const 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
    • Const INTITULE As String = “Algorithmique et programmation” ‘ par exemple

  9. 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.
      • Les variables en VBA

    • 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.
      • Les variables en VBA

    • Act03



Laisser un commentaire

Abonnez vous à notre chaîne YouTube gratuitement