Insérer en-tête tableau structuré VBA
Bonjour à tous les membres,
J'ai des données dans plusieurs onglets, je voudrais les placer sous forme de tableau structuré, j'y suis parvenu.
Seulement je voudrais ajouter une en-tête dans ce tableau structuré comme dans l'exemple ci-dessous:
J'ai utilisé le code ci-dessous qui devait ajouter 1 ligne au tout début puis renseigner les valeurs d'en-tête souhaitées:
Sub TS()
Dim rg As Range
Dim table As ListObject
Set rg = Cells(1, 1).CurrentRegion
Set table = ActiveSheet.ListObjects.Add(SourceType:=xlSrcRange, Source:=rg, XlListObjectHasHeaders:=xlYes)
With table
.Range.HorizontalAlignment = xlCenter ' Alignement horizontal du contenu des cellules
.ShowTableStyleRowStripes = True ' Lignes sur couleurs de fond alternées
.ShowAutoFilterDropDown = True ' Affichage des boutons de filtres automatiques sur les en-têtes
.TableStyle = "TableStyleLight9" ' Style général (parmi la liste des styles prédéfinis fournis par Excel)
.ListRows.Add 1
.HeaderRowRange(1) = "Equipement"
.HeaderRowRange(2) = "Valeur"
.HeaderRowRange(3) = "Autre"
.HeaderRowRange(4) = "Dépôt"
End With
End SubComment dois-je procéder s'il vous plait?
Bonne journée
JB
Bonjour JBP
Pourquoi se "compliquer" la vie
Sub CréationTS()
Dim Sht As Worksheet
Dim Col As Integer, TabEnt() As String
Dim Rg As Range, Table As ListObject
' Tableau d'entête des colonnes
TabEnt = Split("Equipement,Valeur,Autre,Dépôt", ",")
For Each Sht In ThisWorkbook.Sheets
If Sht.ListObjects.Count > 0 Then GoTo SuiteSht
' Insérer une ligne vierge au début
Sht.Rows("1:1").Insert Shift:=xlDown
' Inscrire les entête
For Col = 1 To 4
Sht.Cells(1, Col).Value = TabEnt(Col - 1)
Next Col
' Définir le TS
Set Rg = Sht.Cells(1, 1).CurrentRegion
Set Table = Sht.ListObjects.Add(SourceType:=xlSrcRange, Source:=Rg, XlListObjectHasHeaders:=xlYes)
With Table
.Range.HorizontalAlignment = xlCenter ' Alignement horizontal du contenu des cellules
.ShowTableStyleRowStripes = True ' Lignes sur couleurs de fond alternées
.ShowAutoFilterDropDown = True ' Affichage des boutons de filtres automatiques sur les en-têtes
.TableStyle = "TableStyleLight9" ' Style général (parmi la liste des styles prédéfinis fournis par Excel)
End With
SuiteSht:
Next Sht
End SubA+
Merci BrunoM45,
Effectivement on peut aussi ajouter la ligne en amont de la création du tableau structuré dans mon cas de figure.
Par contre si je dois ajouter une en-tête dans une tableau structuré déjà existant, comment procéder ?
Merci !
JB
Re,
Vous ne pouvez pas ajouter de ligne d'entête
Quand vous transformez une plage en TS, automatiquement une ligne d'entête est créée
Il faut donc juste renommer les entêtes avec la boucle donnée sans insérer de ligne
Désolé, mais je ne comprends pas votre logique
D'accord, merci pour votre retour.
Bonne journée
JB
Re,
Est-ce que la réponse apportée vous convient, dans ce cas
Merci de ne pas oublier SVP
Bonjour, oui je vais tester votre proposition. Nul doute que cela ne fonctionne pas, j'anticipe la clôture du sujet. Merci à vous.