Variable publique Excel VBA

La variable est une partie importante de la vie d'un programmeur. Chaque fois qu'un programmeur code, il crée un ensemble de variables. Une variable peut être considérée comme un bon que nous utilisons fréquemment sur des sites d'achat en ligne tels que Flipkart, Amazon, etc. ce bon vous permet d'avoir une certaine remise sur certains produits prédéfinis. Il en va de même avec une variable. Une variable peut être définie grammaticalement comme un espace réservé qui réserve une certaine mémoire dans le système avec un certain nom. Cet espace mémoire peut ensuite être utilisé à tout moment avec le même nom.

Une variable VBA est considérée comme une variable publique dans deux circonstances. Quand -

  • Il peut être utilisé avec tous les codes d'un module.
  • Il peut être utilisé le long de tous les codes pour différents modules.

En termes simples, une variable est considérée comme une variable publique lorsqu'elle peut être utilisée dans n'importe quel code et dans n'importe quel module. Dans cet article, nous allons voir comment définir une variable. Comment il peut être défini publiquement dans VBA.

Avant de commencer le concept de variable publique VBA, nous devons comprendre que les variables utilisées dans une sous-procédure ne peuvent pas être utilisées dans l'autre sous-procédure (c'est là que nous avons commencé à ressentir le besoin d'avoir une variable publique qui peut être utilisé à travers n'importe quel module, n'importe quelle sous-procédure).

Supposons que nous créons une sous-procédure dans un VBA et y définissons une nouvelle variable à l'aide de l'instruction Dim.

Dans ce code, var1 est la variable définie sous la sous-procédure Ex_Var .

Maintenant, je vais définir une nouvelle sous-procédure et l'ironie est que je ne peux pas utiliser var1 précédemment défini dans cette sous-procédure. Voir la capture d'écran ci-dessous, où j'essaie d'attribuer la valeur 10 à var1 sous une sous-procédure différente. Consultez également le message d'erreur après avoir exécuté le code.

En déclarant des variables sous des sous-procédures, nous restreignons leur utilisation par cette sous-procédure uniquement. C'est un inconvénient majeur de déclarer une variable dans une sous-procédure.

Cela conduit à la nouvelle théorie, qui inclut la déclaration de variable en dehors des sous-procédures. Cela aidera le programmeur à utiliser largement les variables définies avec différentes sous-procédures.

Comment déclarer des variables publiques dans VBA?

Voyons quelques exemples pour déclarer des variables publiques dans VBA.

Vous pouvez télécharger ce modèle Excel de variables publiques VBA ici - Modèle Excel de variables publiques VBA

Exemple # 1 - Définition d'une variable publiquement dans un module

Supposons que nous voulons définir une variable accessible publiquement à travers tous les codes d'un même module. Nous pouvons faire ça. Suivez les étapes ci-dessous:

Étape 1: ouvrez votre éditeur Visual Basic (VBE) en appuyant sur Alt + F11 ou en cliquant sur le bouton Visual Basic sous l'onglet Développeurs dans Excel. Sélectionnez l'onglet Insérer, accédez aux modules et cliquez dessus. Il ajoutera un nouveau module dans le VBE sur lequel travailler.

Étape 2: Dans le module nouvellement créé, ajoutez la commande Option Explicit au début de votre code VBA (avant de créer une variable). Option Explicit vous aide en cas de faute de frappe lors de l'utilisation de la variable définie. Si la variable utilisée n'est pas définie dans le système, cette option génère un message d'erreur indiquant que la variable n'est pas définie.

Code:

 Option explicite 

Étape 3: utilisez une instruction Dim pour créer une nouvelle variable nommée my_name avec le type de données String.

Code:

 Option Dim explicite my_name As String 

Si vous pouviez faire attention, nous avons défini cette variable explicitement. Cela signifie que cela ne fait pas partie d'une sous-procédure spécifique. Ce qui rend automatiquement cette variable disponible pour tous les codes du module créé (Module1). Cela s'appelle définir une variable publiquement dans un module. Cette variable peut être utilisée n'importe où dans les multiples sous-procédures du même module.

Supposons que le code donné ci-dessous, j'ai attribué une valeur à la variable mon_nom comme «Lalit Salunkhe».

Code:

 Option Explicit Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mon nom est:" & my_name End Sub 

Si j'exécute ce code, je verrai une boîte de message comme indiqué dans la capture d'écran ci-dessous:

Nous pouvons également utiliser cette variable dans différents sous-processus au sein du même module. Voir la capture d'écran ci-dessous:

Code:

 Option Explicit Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mon nom est:" & my_name End Sub Sub Ex_2 () Dim my_age As Integer my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Mon nom est: "& my_name &"; Mon âge est: "& my_age End Sub 

Voir le sous-processus Ex_2. Il a une nouvelle variable définie my_age. J'ai utilisé my_name pour ajouter mon nom et my_age pour ajouter l'âge actuel du mien. Vous pouvez voir que mon_nom est toujours accessible dans la deuxième sous-procédure. Une fois que j'ai exécuté ce code, nous pouvons obtenir la sortie sous la forme d'une boîte de message ci-dessous:

C'est ainsi que nous pouvons définir une variable publiquement dans un module.

Exemple # 2 - Définir une variable publiquement sur tous les modules

Pour réaliser cet exploit, vous devez utiliser les mots-clés comme Public ou Global au lieu de Dim, ce qui définit la variable comme publique pour tout le module où que vous travailliez.

Étape 1: créez un nouveau module. Allez dans l'onglet Insertion, cliquez sur Module pour ajouter un nouveau module sous VBE.

Étape 2: Ajouter une option explicite dans le module.

Code:

 Option explicite 

Étape 3: Définissez une nouvelle variable nommée var1 et var2 en tant que type entier. Mais cette fois, en utilisant la déclaration publique au lieu de Dim (que nous avons utilisé précédemment).

Code:

 Option Explicit Public var1 As Integer Public var2 As Integer 

Étape 4: Maintenant, ces deux variables peuvent être utilisées sur plusieurs modules si elles sont créées sous le même VBE. Voir l'exemple ci-dessous:

Code:

 Option Explicit Public var1 As Integer Public var2 As Integer Sub Ex_3 () var1 = 10 var2 = 100 MsgBox "La valeur de var1 est:" & var1 & Chr (13) & "La valeur de var2 est:" & var2 End Sub 

Nous avons attribué les valeurs aux deux variables à l'aide d'une fonction MsgBox, essayant d'afficher les valeurs de ces deux variables.

Étape 5: Exécutez le code en appuyant sur la touche F5 ou en cliquant sur le bouton de lecture, vous pouvez voir une sortie comme indiqué ci-dessous:

Étape 6: Nous allons utiliser les mêmes variables sous Module1 que nous avons utilisées dans le premier exemple et essayer de déterminer si les variables y sont accessibles ou non.

Code:

 Option Explicit Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mon nom est:" & my_name End Sub Sub Ex_2 () Dim my_age As Integer my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Mon nom est: "& my_name &"; Mon âge est: "& my_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox" La valeur pour var1 est: "& var1 & Chr (13) &" La valeur pour var2 est: "& var2 End Sub 

Si vous pouviez voir la capture d'écran ci-dessus, nous avons utilisé le même ensemble de variables défini sous Module2 et avons des valeurs comme 1000 et 999 respectivement. Nous utilisons la fonction MsgBox pour présenter les valeurs de ces deux variables respectivement. Exécutez le code et vous pouvez voir la sortie comme ci-dessous:

C'est ainsi qu'une variable peut être utilisée publiquement dans le module et entre les modules.

Choses dont il faut se rappeler

  • Il est toujours préférable de définir les variables explicitement dans VBA. Pour qu'ils ne se limitent pas à la sous-procédure dans laquelle ils sont définis.
  • Vous pouvez attribuer une variable publique de deux manières: une dans un module à l'aide d'une instruction Dim conventionnelle et une seconde dans tous les modules présents dans VBE à l'aide de l'instruction Public ou Global.

Articles recommandés

Ceci est un guide de la variable publique VBA. Nous expliquons ici comment déclarer une variable publique dans Excel à l'aide du code VBA dans Excel, ainsi que des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Variables globales VBA
  2. Un tableau de données variables dans Excel
  3. VBA FileSystemObject (FSO)
  4. Tableau de données à deux variables dans Excel

Catégorie: