Tableau Structuré : Instructions VBA spécifiques à cet objet

Un tableau structuré Excel est en fait l’équivalent d’une table Access.

  • Il est borné car le nombre de ses lignes et colonnes est obligatoirement défini
  • Il est identifié par son nom et les entêtes de ses colonnes.

Utilisation de la classe ListObject

Ses principales propriétés sont les objets :

  • Range = ensemble du tableau
  • HeaderRowRange = ligne des entêtes de colonne
  • DataBodyRange = lignes des données du tableau
  • TotalsRowRange = ligne des totaux du tableau si elle a été définie
  • ListRows = lignes du tableau
  • ListColumns = colonnes du tableau

Assignation du tableau structuré à partir de son nom :

Dim TS As ListObject

Set TS = Range("nom_du_tableau").ListObject

Ou Set TS = [nom_du_tableau].ListObject

'feuille où se trouve le tableau

Dim feuille As Worksheet

Set feuille = TS.Range.Worksheet

Gestion des lignes du tableau :

Dim ligne As ListRow

Dim i As Integer, nb_lig As Integer, nb_col As Integer

'// nombre de lignes

nb_lig = TS.ListRows.Count

'// nombre de colonnes

nb_col = TS.ListColumns.Count

'// ajout d'une ligne et indice de la ligne ajoutée

Set ligne = TS.ListRows.Add: i = ligne.Index

'// suppression d'une ligne d'indice i

TS.ListRows(i).Delete

'// vidage intégral du tableau

TS.DataBodyRange.Delete

'// remplissage d'une ligne d'indice i

TS.ListColumns("nom colonne").DataBodyRange(i) = valeur

'// recherche exacte de l'indice d'une ligne du tableau à partir d'une valeur de recherche unique dans une colonne donnée

i = Application.Match(valeur_recherchée, TS.ListColumns("nom_colonne").DataBodyRange, 0)

ou

Set Cell =TS.ListColumns("nom_colonne").DataBodyRange.Find (valeur_recherchée, LookAt:= XLWhole)

i = Cell.Row - TS.HeaderRowRange.Row

Merci thev pour ce partage bien structuré !

Merci thev !

Bonsoir,

merci, cela résume simplement pas mal de fonction dont je cherche toujours les instructions !
je m'en sort avec les recherches sur les différents fichiers que j'ai sauvegardé ici ou ailleurs !

Par contre, bien que ce soit rare, j'ai pris l'habitude de définir les variables "ligne" en Long pour éviter l'erreur au-delà des 32767 lignes.

@ bientôt

LouReeD

Bonjour à tous,

De passage après un long moment d'absence !

J'en profite pour compléter ce sujet : j'avais fait un petit tuto sur l'utilisation des tableaux structurés, avec une section VBA (light).

Rechercher des sujets similaires à "tableau structure instructions vba specifiques cet objet"