Bonjour à tous,

Je tente depuis quelques jours de m'initier aux Tableaux Structuré via les beaux billets/tuto de Pierre Fauconnier.
J'ai une petite question qui pourrais vous sembler assez bête...

Je fais une boucle sur une table "T_Mapping" en vue de récupérer les critères pour "Ventiller" filtre et export vers autre feuille du résultat, la Bdd.

Mon code fonctionne bien.

Mais n'étant pas certain de l'évolution que prendra la table ajout colonne, modification ordre,....

Je me demande s'il serait envisageable de se passer des Cel.Offset(0, 1).Value, pour récupérer la valeur d'une cellule sur la même ligne en fonction du header, et non plus de la position de la cellule. ?

du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Crit2 = Cel.Offset(0, 1).Value
->
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Crit2 = Cel.ListColumns("Criteria1").DataBodyRange.Value
je suis dans le flou.

Merci d'avance pour votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Testventilation()
 
 Dim Tbl As ListObject, Cel As Range
 Dim Crit1 As String, Crit2 As String
 Dim TD As Range, rangeDest As String
 
 
 Set TD = ThisWorkbook.Sheets("Sheet1").Range("T_Personnes")   ' table à ventiller
 Set Tbl =ThisWorkbook.Sheets("Param").ListObjects("T_Mapping") ' table de parametres
 
 For Each Cel In Tbl.ListColumns("Criteria1").DataBodyRange ' "Criteria1" libellé de la colone
  Crit1 = Cel.Value
  Crit2 = Cel.Offset(0, 1).Value
  rangeDest = Cel.Offset(0, -1).Value
  Call TestSelectTDbyMapping(TD, Crit1, Crit2, rangeDest)
 Next
 
End Sub