Supprimer plusieurs lignes (nombre variable)

Bonjour !

J'essaie de supprimer un certain nombre de lignes dans un tableau avec une macro. Précisément de la ligne 2 (1ère ligne du tableau) à la ligne n.

Je trouve la valeur de n plus tôt dans mon code, donc la valeur doit forcément être stockée dans une variable, que j'ai appelé n ici. Pour l'exemple, j'ai supposé que c'était 8.

Pour supprimer mes lignes, je dois aussi faire référence à la bonne feuille, car mon document comporte de nombreuses feuilles différentes (et plusieurs d'entres elles sont utilisées dans la grande macro).

Quand j'exécute mon code, j'obtiens "Erreur d'exécution '1004': Erreur définie par l'application ou par l'objet".

Voici mon code :

Sub Supp_Rows()

Dim wb_name As Workbook
Dim ws_name As Worksheet
Dim n As Integer
n = 8

Set wb_name = ThisWorkbook
Set ws_name = wb_name.Worksheets(1)

ws_name.Rows(Cells(2, 1), Cells(n, 1)).Select
Selection.Delete Shift:=xlUp

End Sub

Merci pour votre aide !

Bonjour,

Une alternative :

Sub Supp_Rows()
Dim n As Integer
n = 8
Worksheets(1).Cells(2, 1).Resize(n - 2).EntireRow.Delete
End Sub

Dans votre cas Cells vous renvoie un objet range de type (A1) donc pas utilisable dans l'objet Row. Il aurait fallu utiliser Cells(2,1).Row pour récupérer juste le numéro de ligne. Sauf qu'entre Rows il faut : donc Cells(2,1).Row & ":" & Cells(n,1).Row. De plus il soit être combiné à EntireRow si je ne dis pas de bêtises. C'est pourquoi je prefère utiliser resize qui redimensionne la plage en fonction de n, puis on supprime les lignes entières via EntireRow.

Cdlt,

Ça marche ! Merci beaucoup !

J'ai juste remplacé le -2 par -1 dans le Resize car sinon il me restait la première ligne que je voulais supprimer mais à part ça c'est top !!!

Merci !!

Rechercher des sujets similaires à "supprimer lignes nombre variable"