Création d'un "tableau" Excel via VBA

Bonjour,

Sub Macro7()

    Range("A1:M21").Select
    Range("M21").Activate
    Application.CutCopyMode = False
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$M$21"), , xlYes).Name = _
        "t_test"
    Range("t_test[#All]").Select
    ActiveSheet.ListObjects("t_test").TableStyle = "TableStyleMedium2"
End Sub

J'essaie de transformer via VBA des données en tableau.

Problème? La plage de donnée ne sera pas toujours la même.

Aurtiez-vous svp une astuce?

Bonjour,

Avec le contexte que j'ai, voici une proposition:

Sub ajoutTableau(Plage As Range, ByVal nomPlage As String)
Dim Feuille As Worksheet
Dim Tableau As ListObject
Set Feuille = Plage.Parent

If Plage.ListObject Is Nothing Then
    Set Tableau = Feuille.ListObjects.Add(xlSrcRange, Plage, , xlYes)
    On Error GoTo nomDejaPris
    Tableau.Name = nomPlage
    On Error GoTo 0
    Tableau.TableStyle = "TableStyleMedium2"
Else
    MsgBox "La plage " & Plage.AddressLocal & " est déjà dans un tableau nommé," & Chr(10) & _
    "il s'appelle: " & Plage.ListObject.Name, vbInformation, "Information"
End If

Exit Sub

nomDejaPris:
MsgBox "Le nom: " & nomPlage & " est déjà utilisé", vbInformation, "Information"
End Sub

Sub test()
ajoutTableau Range("a1:b2"), "monNomDeTableau"
End Sub

La procédure s'appelle ajoutTableau, tu lui donnes une plage de cellules, un nom, et il te crée le tableau avec le nom donné.

Sub test() montre comment utiliser la procédure.

Merci pour le temps consacré.

Je n'arrive pas à faire marcher le VBA.

Mais je me rend compte que c'est plus simple via PQ.

Rechercher des sujets similaires à "creation tableau via vba"