Re,
J'ai adapté un peu ton code comme ceci:
Option Explicit
'Réinitialise le tableau en conservant la mise en forme
'et les formules
Dim PremiereLigne As String, DerniereLigne As String
Public Sub Reset_data()
With ActiveSheet.ListObjects(1)
If Not .DataBodyRange Is Nothing Then
.DataBodyRange.Rows(2 & ":" & .DataBodyRange.Rows.Count).EntireRow.Delete
End If
End With
End Sub
Et cela a fonctionné.
Cependant, cela n'arrive pas à fonctionner dans une autre feuille contenant d'autres objets en plus (graphiques, autre tableaux,...).
Lorsqu'il y'a plusieurs objets dans la feuille, l'instruction .DataBodyRange.Rows(2 & ":" & .DataBodyRange.Rows.Count).EntireRow.Delete s'emballe carrément...why ?
Comment atteindre à coup sûr le tableau et non un autre objet de la feuilles ?
Ou du moins, dans quel ordre l'instruction ActiveSheet.ListObjects(1) sélectionne-t-elle les objets dans une feuille ?