Plage variable VBA

Variable Excel VBA dans la plage

Les variables sont le cœur et l'âme de tous les grands projets VBA puisque les variables sont cœur et âme, le type de données que nous leur attribuons est également un facteur très important à cet égard. Dans nos nombreux articles précédents, nous avons discuté à maintes reprises des variables et de l'importance de leur type de données. Une de ces variables et types de données est «Variable de plage», dans cet article spécial dédié, nous donnerons un guide complet sur «Variable de plage» dans Excel VBA.

Qu'est-ce que la variable de plage dans Excel VBA?

Comme toutes les autres variables Range dans VBA, la variable est également une variable mais c'est une «variable objet» que nous utilisons pour définir la référence de la plage spécifique de cellules.

Comme toute autre variable, nous pouvons donner n'importe quel nom à la variable, mais le type de données que nous leur attribuons doit être une «plage». Une fois que le type de données attribué à la variable devient une «variable objet» et contrairement à une autre variable, nous ne pouvons pas commencer à utiliser la variable avant de définir la référence des objets dans le cas des variables objet.

Donc, après avoir déclaré la variable, nous devons utiliser le mot-clé «SET» pour définir la référence d'objet, c'est-à-dire l'objet Range dans ce cas.

Ok, maintenant nous allons voir certains des exemples de variables de plage VBA Excel pratiquement.

Exemples de variable de plage dans Excel VBA

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

Par exemple, supposons que vous souhaitiez sélectionner la plage de cellules de A2 à B10 pour l'image de capture d'écran ci-dessous.

Pour sélectionner cette plage de cellules mentionnée tout cela alors que nous avons l'objet RANGE et à l'intérieur de l'objet plage, nous avons mentionné l'adresse de la cellule entre guillemets.

Code:

 Sub Range_Variable_Example () Range ("A2: B10") End Sub 

Une fois que la plage de cellules est mentionnée à l'aide de l'objet RANGE, si vous mettez un point, nous verrons toutes les propriétés et méthodes associées à cet objet de plage.

Code:

Sous Range_Variable_Example () Range ("A2: B10"). End Sub

Puisque nous devons sélectionner les cellules mentionnées, choisissez simplement la méthode «Select» dans la liste IntelliSense.

Code:

 Sub Range_Variable_Example () Range ("A2: B10"). Sélectionnez End Sub 

Exécutez le code et il sélectionnera les cellules mentionnées.

C'est évident, n'est-ce pas, mais imaginez le scénario d'utilisation de la même plage dans le long projet VBA, disons cent fois, écrire le même code de "Range (" A2: A10 ")" 100 fois prendra du temps, mais à la place nous déclarerons la variable et attribuerons le type de données en tant qu'objet «Range».

Ok, donnons votre propre nom à une variable et assignons le type de données comme «Range».

Autre que «Variables d'objet», nous pouvons commencer à utiliser les variables par leur nom, mais dans le cas de «Variables d'objet», nous devons définir la référence.

Par exemple, dans ce cas, notre objet variable (Rng) est range, nous devons donc définir la référence à laquelle le mot «Rng» va faire référence. Pour définir la référence, nous devons utiliser le mot-clé «Set».

Maintenant, la variable «Rng» fait référence à la plage de cellules de A2 à B10, au lieu d'écrire «Range (« A2: B10 »))» chaque fois que nous pouvons simplement écrire le mot «Rng» .

Dans la ligne suivante, mentionnez le nom de la variable «Rng» et mettez un point pour voir la magie.

Comme vous pouvez le voir ci-dessus, nous pouvons voir toutes les propriétés et méthodes de l'objet range comme le précédent.

Rendre la variable dynamique

Nous savons maintenant comment définir la référence à la plage de cellules, mais une fois que nous mentionnons la plage de cellules, elle ne colle qu'à ces cellules, tout ajout ou suppression de cellules n'aura aucun impact sur ces cellules.

Ainsi, trouver la nouvelle plage de cellules après tout ajout ou suppression de cellules rend la variable dynamique par nature. Ceci est possible en trouvant la dernière ligne et colonne utilisées.

Pour trouver la dernière ligne et colonne utilisées, nous devons définir deux autres variables.

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Last Column for Understanding End Sub 

Le code ci-dessous trouvera maintenant la dernière ligne et colonne utilisée avant de définir la référence à une variable d'objet de plage.

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Last Column for Understanding LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column End Sub 

Ouvrez maintenant l'instruction de mot-clé «Set».

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Last Column for Understanding LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = End Sub 

Contrairement à la méthode précédente, nous utilisons cette fois les propriétés VBA CELLS.

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Last Column for Understanding LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1) End Sub 

J'ai mentionné Cells (1,1), c'est-à-dire que cela fait référence à la première cellule de la feuille active mais nous avons besoin de la référence de la plage de données, utilisez donc la propriété «RESIZE» et mentionnez les variables «last used row & column».

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Last Column for Understanding LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1) .Resize (LR, LC) End Sub 

Now this will set the latest reference to the range object variable “Rng”. Next, mention the variable name and use the “Select” method.

 Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column Set Rng = Cells(1, 1).Resize(LR, LC) Rng.Select End Sub 

Now I will add a few more lines to my data.

I have added three extra lines of data if I run the code now it should select the latest data range.

Things to Remember

  • The range variable in excel VBA is an object variable.
  • Whenever we use the object variable we need to use the “Set” keyword and set the object reference to the variable.
  • Without setting the reference we cannot use an object variable.