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:

image image

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 Sub

Comment dois-je procéder s'il vous plait?

Bonne journée

JB

Bonjour JBP

Pourquoi se "compliquer" la vie perso je ferais :

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 Sub

A+

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.

Rechercher des sujets similaires à "inserer tete tableau structure vba"