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.