<< Retour au sommaire

 

VBA, Les variables

 

 

 

Table des matières

  1. Introduction ;
  2. Les types de variables ;
  3. La déclaration des variables ;
  4. Les variables indicées ;
  5. L’utilisation des variables ;
  6. Un exemple dans EXCEL ;

 

Introduction

 

Une variable est un espace mémoire qui vous permet de stocker provisoirement des informations durant l’exécution d’une macro ou d’une application. Les variables sont donc un moyen provisoire de conserver des données dans le but de réaliser des opérations, de les transférer d’un endroit à un autre Etc.…

D’ailleurs, une information manipulée par un programme est dite une « donnée ».

 

Une variable a un type, selon la nature de la donnée que l’on va lui affecter, elle a également un nom et c’est à partir de ce nom que vous allez l’exploiter. Du reste, c’est vous qui allez définir le nom de vos variables…

 

 


Les types de variables

 

Selon les types de données que vous souhaitez stocker dans une variable, vous devez, lors de la déclaration d’une variable, choisir l’un des types disponibles dans le langage VISUAL BASIC.

 

 

 


La déclaration des variables

 

Le type « Variant » ne se déclare pas. Dans ce cas, la variable doit être saisie au moment de sa première utilisation et peut recevoir n’importe quel type de valeur. Toutefois, cet avantage à son prix, une variable de type « Variant » consomme un espace mémoire très important, mais sachez que les machines actuelles ne sont pas vraiment dérangées par ce problème !

Sinon, si nous n’utilisons pas le type « Variant », nous devons déclarer les variables dès les premières lignes d’une macro.

Le mot Clef qui est utilisé est « Dim ».

Ces variables sont dites variables locales, car elles sont systématiquement initialisées lors de l’exécution de la macro qui les contient, et elles sont détruites lorsque l’exécution de la macro et terminée.

 

La syntaxe de la déclaration :

Une variable locale :

 

Dim Nom_Variable As Type_Variable

 

Par exemple, pour déclarer une variable intitulée Nom et de type chaîne de caractères :

Dim Nom As String

 

Voici quelques règles concernant les noms de variables :

  1. La taille est illimitée ;
  2. Le premier caractère doit être une lettre alphabétique ;
  3. Pas d’espace et de caractères spéciaux ;
  4. Un nom de variable est de case non sensitive, c’est-à-dire que l’on peut utiliser indifféremment les minuscules et les majuscules pour désigner une même variable.

 

 


Les variables indicées

 

Ces variables sont dites « Tableaux ».

Les tableaux sont donc des variables dans lesquelles vous pouvez affecter plusieurs données.

Il existe deux types de tableaux, les tableaux « définis » et les tableaux « dynamiques ».

Un tableau « défini » est un tableau pour lequel nous déterminons, et ce,  dès sa déclaration, le nombre de « cellules », ou de « cases », que nous lui voulons.

 Par exemple, si je souhaite un tableau de type « chaîne de caractères » d’une seule dimension 5 cellules :

Dim Mon_Tableau(5) As String

 

Si je souhaite un tableau de type Long en deux dimensions 5 lignes 5 colonnes :

Dim Mon_Tableau(5,5) As Long

 

Un tableau « dynamique » est un tableau pour lequel nous ne souhaitons pas déterminer à l’avance sa taille.

Ce type de tableau est très pratique mais il consomme beaucoup d’espace mémoire.

 

Par exemple, pour le tableau « Nom », déclaré en tête d’une macro et de type « chaîne de caractères » :

Dim Nom() As String

 

Ultérieurement, durant l’écriture du code du programme, je pourrai dimensionner ce  tableau de la façon suivante :

Redim Nom(10,10)

 

Mais cette « redéclaration » effacera les valeurs contenues dans le tableau.

Pour conserver les valeurs déjà affectées, il faudra rajouter le mot clef « Preserve » :

Dim Preserve Nom(10,10)

 

 


L’utilisation des variables

 

Une variable est donc utilisée à l’intérieur d’une macro afin de conserver des données.

Elle est dite « variable locale », elle est déclarée en haut d’une macro avec le mot clef « Dim », et elle a une existence limitée au temps d’exécution de la macro la contenant.

Les variables ne sont donc pas faites pour mémoriser définitivement les données, mais provisoirement, et ça, vous devez l’intégrer sur le champ.

Durant l’exécution du programme, les variables peuvent être utilisées à l’intérieures de formules mathématiques ou comme arguments dans des instructions.

 

Pour affecter une valeur dans une variable, vous devez utiliser l’opérateur d’affectation « + », c’est-à-dire égal.

Par exemple, pour affecter la chaîne de caractères « VISUAL BASIC » dans la variable intitulée « Langage » :

Dim langage As String

Langage = « VISUAL BASIC »

 

Vous avez constaté que la chaîne de caractères « VISUAL BASIC » était encadrée par des guillemets. En effet, c’est ainsi que le compilateur fera la distinction entre une variable et une chaîne de caractères, c’est-à-dire entre le nom d’une variable et sa donnée. Quant à l’opération qui permet d’envoyer une donnée dans une variable, il s’agit d’une « affectation ».

 

Maintenant, nous allons déclarer 3 variables de type « Integer », et ensuite, nous allons affecter des valeurs dans les 2 premières et la somme de ces 2 variables dans la troisième.

 

Dim Premier As Integer

Dim Deuxième As Integer

Dim Troisième As Integer

Premier = 33

Deuxième = 666

Troisième = Premier+Deuxième

 

Vous devez vous en douter, la variable « Troisième » contient désormais 699.


L’affectation dans les tableaux :

 

Pour affecter une donnée dans un tableau, vous devez préciser l’emplacement exact dans le tableau où sera affectée la donnée.

Vous devez donc préciser les indices.

Je vais déclarer un tableau en deux dimensions, se tableau s’appèlera Ages, et après sa déclaration, je vais affecter la valeur 38 dans la deuxième colone de la deuxième ligne du tableau.

 

Dim Age(10,10) As Byte

Age(2,2) = 38

 

Dans un programme, vous pourrez remplacer les valeurs d’indices par une ou plusieurs variables :

 

Dim Age(10,10) As Byte

Dim Indice1 As Byte

Dim Indice2 As Byte

Indice1 = 2

Indice2 = 2

Age(Indice1,Indice2) = 38

 

 


Un exemple dans EXCEL

 

Nous allons réaliser une petite macro qui ouvre une fenêtre de saisie à l’écran, et après validation de cette fenêtre, le texte saisie sera écrit automatiquement dans la cellule A1.

 

Ici, nous allons utiliser la fonction « InputBox » qui ouvre un formulaire de saisie à l’écran, puis, le résultat de la saisie sera directement affecté dans la variable MonTexte.

Nous allons également utiliser la commande « activecell.value », qui permet d’écrire dans la cellule courante, et dans le cas de notre exemple, la valeur écrite sera le contenu de la variable « MonTexte ».

 

Voici le code :

 

Sub saisirA1()

'

' saisirA1 Macro

'

' Touche de raccourci du clavier: Ctrl+y

'

' Demande à l'utilisateur de saisir le texte à insérer dans la cellule A1

MonTexte = InputBox("Veuillez saisir un texte : ")

' Atteindre la cellule A1

    Application.Goto Reference:="R1C1"

    ' Réalise la saisie

    ActiveCell.Value = MonTexte

End Sub

 

Philippe BOULANGER