J'ai ce type de tableau structuré, je voudrais mettre dans une variable le numéro de colonne des entêtes.
Afin de pouvoir le réutiliser dans une procédure car le tableau pourrait évoluer (ajout de colonnes à l'intérieur du tableau).
En vous remerciant par avance.
ps: initialement, il n'y avait pas de colonne Monnaie
Bonne soirée à vous.
Edit: Je me suis noyé dans un verre d'eau. Finalement, j'ai trouvé
Comme tu remplaçais nbCol je pensais que c'était la ligne NbCol = [Tableau1].Columns.Count qui plantait.
Par ailleurs quelle différence fais-tu entre ces 2 lignes :
Code:
' Col = Intersect(.HeaderRowRange, Target.EntireColumn).Value
Col = Intersect(Target.EntireColumn, .HeaderRowRange)
???
Si ce n'est que tu inverses, et enleves le .Value qui donne explicitement la propriété voulue.
Celle d'origine fonctionne et ôte toute ambiguïté...
Ma proposition faisait 3 lignes :
VB:
With ActiveWorkbook.Worksheets("Feuil1").ListObjects(1)
Debug.Print Intersect(.HeaderRowRange, ActiveCell.EntireColumn).Value
End With
Et oui, il faut la compléter en t'assurant être dans le tableau.
Je ferais...
J'ai ce type de tableau structuré, je voudrais mettre dans une variable le numéro de colonne des entêtes.
Afin de pouvoir le réutiliser dans une procédure car le tableau pourrait évoluer (ajout de colonnes à l'intérieur du tableau). Regarde la pièce jointe 1067455
En vous remerciant par avance.
ps: initialement, il n'y avait pas de colonne Monnaie
Bonne soirée à vous.
Edit: Je me suis noyé dans un verre d'eau. Finalement, j'ai trouvé
Salut Laurent950, pourquoi es-tu dans cet état alors qu'on est dimanche.
Tableau1 est le nom du tableau
Crédit est le nom de l'entête
Pour ton ps:
Dans ma procédure évènementielle j'avais ceci: If Target.Column = 2 And Ligne = 5 Then (colonne 2 était Crédit) en insérant une colonne ma procédure ne pouvait plus fonctionner. Est-ce que ça te suffit comme réponse.
Bonne soirée et repose-toi bien, il me semble que tu es fatigué en cette fin de journée.
Hello cp4 content de ta réponse, j'ai trouvé sympa cette ligne de code et j'avais envie de comprendre je chercher simplement sans trouver de réponse. Merci à toi cp4.
J'ai ajouter 2 réponses dans mon poste #2 dont une en complément de jacky67
Hello cp4 content de ta réponse, j'ai trouvé sympa cette ligne de code et j'avais envie de comprendre je chercher simplement sans trouvé de réponse. Merci à toi cp4.
J'ai ajouter 2 réponses dans mon poste #2 dont une en complément de jacky67
Re,
Il n'y a pas une possibilité de faire une boucle pour récupérer les nom des entêtes des tableaux structuré ? je viens de penser a cela ?
Peux être si tu me laisse le code ici je regarde, j'utilise jamais les tableaux structuré, juste pour voir si je m'en sort aussi et un peux d'entrainement sur quelque choses e nouveau
Re,
Il n'y a pas une possibilité de faire une boucle pour récupérer les nom des entêtes des tableaux structuré ? je viens de penser a cela ?
Peux être si tu me laisse le code ici je regarde, j'utilise jamais les tableaux structuré, juste pour voir si je m'en sort aussi et un peux d'entrainement sur quelque choses e nouveau
Pour le moment, je voulais me casser la tête et ouvrir une discussion en cas de blocage.
Comme tu veux t'entrainer, je te joint une copie du fichier. Tu y trouveras un descriptif de mon casse-tête pour découvrir et apprendre.
Le code en question est dans le module de la feuille1.
Re,
J'ai fait un test par rapport à ton fichier : les tableaux structures vba
VB:
Sub tableSheetForEach()
Dim sh As Worksheet
Set sh = ThisWorkbook.Worksheets("Feuil1")
Dim tbl As ListObject
' Boucle à travers toutes les tables de la "Feuil1"
For Each tbl In sh.ListObjects
If tbl.Name = "Tableau1" Then
' Mise en mémoire
Dim Tableau1 As ListObject
Debug.Print tbl.Name
Set Tableau1 = tbl
Exit For
End If
Next tbl
' Boucle sur tbl = tableau1
Dim cel As Range
For Each cel In Tableau1.Range
' Exemple "Crédit"
If cel = "Crédit" Then
MsgBox cel.Value
MsgBox cel.Address
MsgBox cel.Column
MsgBox cel.Row
Exit For
End If
Next
End Sub
J'aimerais boucler sur toutes les cellules d'une colonne d'un ListObject; en sachant que je connait le nom de la colonne sur laquelle je souhaite boucler. Pour mon code ne fonctionne-t-il pas ? Code : - 1 2 3 4