VBA ListObjects - Guide des tableaux Excel ListObject dans Excel VBA

Que sont les ListObjects dans VBA?

Dans une table normalement, ce que nous voyons est un ensemble de données, mais dans la terminologie VBA, il y en a beaucoup plus, comme il y a une plage de la plage de la liste de données totale, la colonne est connue comme la colonne de liste et la ligne est connue comme la ligne de liste et ainsi de suite , donc pour accéder à ces propriétés, nous avons une fonction intégrée appelée Listobjects et qui est utilisée avec la fonction de feuille de calcul.

VBA ListObject est une façon de se référer aux tables Excel lors de l'écriture du code VBA. En utilisant VBA LISTOBJECTS, nous pouvons créer, supprimer des tables, et totalement nous pouvons jouer avec des tables Excel en code VBA. Les tableaux Excel sont délicats, débutants et même dans une certaine mesure, les utilisateurs de niveau intermédiaire ont du mal à travailler avec des tableaux. Étant donné que cet article parle de référencer des tables Excel dans le codage VBA, il est préférable que vous ayez une bonne connaissance des tables dans Excel.

Lorsque les données sont converties en tableaux, nous ne travaillons plus avec une plage de cellules. Nous devons plutôt travailler avec des plages de tables, donc dans cet article, nous allons vous montrer comment travailler avec des tables Excel pour écrire efficacement des codes VBA.

Créer un format de tableau à l'aide de ListObjects dans Excel VBA

Par exemple, regardez les données Excel ci-dessous.

En utilisant le code VBA ListObject, nous allons créer un format de table pour ces données.

  • Pour ces données, nous devons d'abord trouver quelle est la dernière ligne et colonne utilisée, définissez donc deux variables pour la trouver.

Code:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long End Sub
  • Pour trouver la dernière ligne et colonne utilisées, utilisez le code ci-dessous.

Code:

LR = Cellules (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Colonne
  • Définissez maintenant une autre variable pour contenir la référence des données.

Code:

Dim Rng As Range
  • Définissez maintenant la référence à cette variable en utilisant le code ci-dessous.

Code:

Définissez Rng = Cells (1, 1) .Resize (LR, LC)

Nous devons maintenant utiliser la méthode VBA «ListObject.Add» pour créer une table, et voici la syntaxe de la même chose.

ListObject.Add (Source, XlListObjectHasHeaders, Destination, TableStyleName)

Source: Ce n'est rien pour quelle plage de cellules nous insérons le tableau. Nous pouvons donc fournir ici deux arguments, à savoir «xlSrcRange» et «xlSrcExternal».

XlListObjectHasHeaders: si la table insérant des données a des en-têtes ou non. Si oui, nous pouvons fournir «xlYes». Sinon , nous pouvons fournir «xlNo».

Destination: ce n'est rien d'autre que notre plage de données.

Style de tableau: si vous souhaitez appliquer un style de tableau, nous pouvons fournir des styles.

  • Ok, maintenant dans la feuille active, nous créons la table, donc le code ci-dessous créerait une table pour nous.

Code:

Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng
  • Après cela, nous devons donner un nom à cette table.

Code:

Ws.ListObjects (1) .name = "EmpTable"
  • Vous trouverez ci-dessous le code complet pour votre référence.

Code:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Dim Rng As Range Set Rng = Cells (1, 1) .Resize (LR, LC) Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1) .name = " EmpTable "End Sub

Ok, exécutons le code et voyons la magie.

Il a créé la table avec les données mentionnées et a donné le nom de table comme «EmpTable».

Mise en forme de tableaux Excel avec VBA ListObjects

Une fois le tableau Excel créé, nous pouvons travailler avec des tableaux en utilisant la collection VBA ListObject.

  • Tout d'abord, définissez la variable comme «ListObject».

Code:

Sub List_Objects_Example2() Dim MyTable As ListObject End Sub
  • Now set the reference to this variable by using the table name.

Code:

Sub List_Objects_Example2() Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects("EmpTable") End Sub

Now the variable “MyTable” holds the reference for the table “EmpTable.”

  • Enter the variable name and put a dot to see the properties and methods of the VBA ListObject.

For example, if we want to select the entire table, then we need to use the “Range” object, and under this, we need to use the “Select” method.

Code:

MyTable.Range.Select

This would select the entire data table, including the heading.

  • If you want to select only the contents of the table without headers, then we need to use “DataBodyRange.”

Code:

MyTable.DataBodyRange.Select

Like this, we can play around with tables.

  • Vous trouverez ci-dessous la liste des codes d'activité pour votre référence.

Code:

Sub List_Objects_Example2 () Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Pour sélectionner une plage de données sans en-têtes MyTable.Range.Select' Pour sélectionner une plage de données avec des en-têtes MyTable.HeaderRowRange.Select ' Sélectionnez les lignes d'en-tête du tableau MyTable.ListColumns (2) .Range.Select 'Pour sélectionner la colonne 2, y compris l'en-tête MyTable.ListColumns (2) .DataBodyRange.Select' Pour sélectionner la colonne 2 sans en-tête End Sub

Comme ça, nous pouvons utiliser la collection «ListObject» pour jouer avec des tables Excel.

Choses dont il faut se rappeler

  • VBA ListObject est la collection d'objets pour référencer des tables Excel.
  • Pour accéder d'abord à la collection ListObject, nous devons spécifier à quelle feuille de calcul nous nous référons.

Articles intéressants...