Supprimer 4 lignes sur 5 Excel (VBA)

Résolu
Bonjour,
je souhaiterai supprimer 4 lignes sur 5 dans un fichier excel de plusieurs colonnes et plusieurs milliers de lignes. (toute la ligne doit partir, pour toutes les colonnes hein).
En gros j'ai ça :

A B C ...
1
2
3
...

Et j'aimerai ça :

A B C ...
1
6
11
16
...

Je n'y connais strictement rien en VBA alors je m'en remets à vous.
Un grand merci d'avance !!

PS : j'ai gribouillé ça mais ça efface absolument tout mon fichier :
 Sub Delete_Every_Other_Row() 

   For I = 0 To (Selection.Rows.Count -1) 
       If I Mod (5) <> 1 Then 
           ' ...delete an entire row of cells. 
           Selection.Rows.EntireRow.Delete 
       End If 
   Next I 

End Sub

2 réponses

  1. Bonjour,

    Je ferai plutôt un truc comme ça :

    Dim Derlig As Long
    Dim i As Long
    
    Derlig = Range("A1").End(xlDown).Row
    
    For i = 6 To Derlig Step 5
         Rows(i).Delete
         i = i - 1
    Next i


    ;o)
    0
    1. Salut et merci de ton coup de main, c'est presque ça...
      en commençant par 1 au lieu de 6 ça va un peu mieux...
      mais...

      ça supprime exactement les lignes que je souhaiterai garder (à savoir 1 sur 5) et ça garde les 4 autres (que je souhaiterai virer)...

      Petite précision :
      les chiffres que j'ai mis sur l'exemple dans mon premier post, ce sont les numéros des lignes d'excel, en aucun cas les valeurs des cellules de la colonne A.

      Mais si ça peut aider, les valeurs de la colonne A sont incrémentées de 0,2 à chaque fois en partant de 200 jusqu'à 700. Et donc, celles que je souhaite garder sont les valeurs "rondes". Mais ces valeurs peuvent changer dans un autre fichier où je serai amené à faire pareil, donc je préfère faire ça de manière relative à excel et pas à ce qu'il y a dans les cellules.
      Je vais essayé quelque chose en attendant...

      EDIT : finalement résolu :
        Sub supress()
                 
                 Dim I     As Long
                 Dim Plage As Range
                 Set Plage = Range("A1:A" & Range("A2").End(xlDown).Row)
                 For I = Plage.Cells.Count To 1 Step -1
                   If Plage.Cells(I).Value Mod (5) <> 1 Then
                     Plage.Cells(I).EntireRow.Delete
                   End If
                 Next
                 
                 End Sub


      Et il y avait un autre moyen, sans code, que j'avais pas vu...

      Bonne soirée à tout le monde.

      "Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement." -A. Einsten-
      0