XL 2010 [RESOLU]Numero colonne entete tableau structuré

cp4

XLDnaute Barbatruc
Bonjour:),

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).
1589732164385.png


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é
VB:
Range("tableau1" & "[crédit]").Column
 
Dernière édition:
Solution
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...

laurent950

XLDnaute Accro
Bonjour cp4,
Range("tableau1" & "[crédit]").Column
"tableau1" = Cprrespond à quoi ?
"[crédit]" = Correspond à quoi ?

J'ai ce type de tableau structuré, soit le tableau Structuré "tableau1"
A4 = Date
B4 = Crédit
C4 = Débit
D4 = Solde
E4 = Observation

ps: initialement, il n'y avait pas de colonne Monnaie, qu'elle est le rapport avec "[Monnaie]"
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Bonjour:),

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é
VB:
Range("tableau1" & "[crédit]").Column
Bonjour,
Sans concaténer
MsgBox [Tableau1[crédit]].Column 'OU MsgBox Range("tableau1[crédit]").Column
 
Dernière édition:

cp4

XLDnaute Barbatruc
Bonjour cp4,
Range("tableau1" & "[crédit]").Column
"tableau1" = Cprrespond à quoi ?
"[crédit]" = Correspond à quoi ?

J'ai ce type de tableau structuré, soit le tableau Structuré "tableau1"
A4 = Date
B4 = Crédit
C4 = Débit
D4 = Solde
E4 = Observation

ps: initialement, il n'y avait pas de colonne Monnaie, qu'elle est le rapport avec "[crédit]"
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.:p
 

laurent950

XLDnaute Accro
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 :D :D
 

cp4

XLDnaute Barbatruc
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 :D :D
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.

Bon courage. ;)
 

Pièces jointes

  • Suivi Budget - Copie.xlsm
    27.5 KB · Affichages: 23

eriiic

XLDnaute Barbatruc
Bonjour à tous,

tu peux récupérer le libellé, ça auto-commentera le code :
VB:
    With ActiveWorkbook.Worksheets("Feuil1").ListObjects(1)
        MsgBox Intersect(.HeaderRowRange, Target.EntireColumn).Value
    End With
eric
 

laurent950

XLDnaute Accro
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
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 152
Messages
2 085 794
Membres
102 975
dernier inscrit
samuelrollens