Supprimer 4 lignes sur 5 Excel (VBA)
Résolu
Swiss Knight
Messages postés
2257
Statut
Membre
-
Swiss Knight Messages postés 2257 Statut Membre -
Swiss Knight Messages postés 2257 Statut Membre -
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 :
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
A voir également:
- Supprimer 4 lignes sur 5 Excel (VBA)
- Supprimer rond bleu whatsapp - Guide
- Comment supprimer une page sur word - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
2 réponses
Bonjour,
Je ferai plutôt un truc comme ça :
;o)
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)
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 :
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-
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-