Supprimer lignes avec toutes cellules = 0
Résolu/Fermé
A voir également:
- Supprimer lignes avec toutes cellules = 0
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Excel additionner des cellules - Guide
- Supprimer edge - Guide
- Supprimer bing - Guide
6 réponses
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
4 août 2010 à 12:07
4 août 2010 à 12:07
salut
tu fais une macro avec le bout de code suivant, cela devrait marcher
attention : il faut qu'il y ait des vrai 0, pas des cellules vides.
de plus je pars du principe que la colonne 1 est toujours remplie, cela s'arrete a la premiere ligne ou la cellule A est vide.
tu fais une macro avec le bout de code suivant, cela devrait marcher
attention : il faut qu'il y ait des vrai 0, pas des cellules vides.
de plus je pars du principe que la colonne 1 est toujours remplie, cela s'arrete a la premiere ligne ou la cellule A est vide.
Dim i As Integer i = 1 While Not IsEmpty(Cells(i, 1)) Dim asupprimer As Boolean asupprimer = True Dim j As Integer j = 1 While asupprimer And Not IsEmpty(Cells(i, j)) asupprimer = (Cells(i, j).Value = 0) j = j + 4 Wend If asupprimer Then Cells(i, 1).EntireRow.Delete Else i = i + 1 End If Wend
Bonjour et merci beaucoup pour ton aide.
J'ai néanmoins un petit souci car mes données numériques ne commencent qu'à la ligne (B9:G9) pour se terminer à la ligne (B1873:G1873).
Mais la macro fonctionne lorsque je ramène le début de les données dans la cellule A1.
Il faut juste que je réussisse à adapter ta macro.
J'ai néanmoins un petit souci car mes données numériques ne commencent qu'à la ligne (B9:G9) pour se terminer à la ligne (B1873:G1873).
Mais la macro fonctionne lorsque je ramène le début de les données dans la cellule A1.
Il faut juste que je réussisse à adapter ta macro.
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
4 août 2010 à 13:07
4 août 2010 à 13:07
tu remplaces
i = 1 par i=9
j = 1 par j=2
ensuite pour te limiter de B à G
While asupprimer And Not IsEmpty(Cells(i, j)) And j <= 7
si tu peux éviter de limiter à la ligne 1873 tu touche a rien d'autre
sinon tu rajoute AND i <= 1873 dans le premier while.
i = 1 par i=9
j = 1 par j=2
ensuite pour te limiter de B à G
While asupprimer And Not IsEmpty(Cells(i, j)) And j <= 7
si tu peux éviter de limiter à la ligne 1873 tu touche a rien d'autre
sinon tu rajoute AND i <= 1873 dans le premier while.
Merci beaucoup, ça fonctionne très bien et je n'aurai jamais réussi à m'en sortir seul.
Je me permets encore de solliciter ton expertise. Dans ce même fichier, j'ai des lignes à valeurs 0, seules et dispersées dans le tableur.
J'en ai d'autres, toujours à valeurs 0, mais qui sont successives et groupées en 16 lignes d'affilées à chaque fois.
Pour toi, existe-t-il une technique pour ne supprimer que ces groupes de 16 lignes à valeurs 0 qui apparaissent plusieurs fois et conserver les autres lignes à valeurs 0 isolées dans le tableur ?
Je me permets encore de solliciter ton expertise. Dans ce même fichier, j'ai des lignes à valeurs 0, seules et dispersées dans le tableur.
J'en ai d'autres, toujours à valeurs 0, mais qui sont successives et groupées en 16 lignes d'affilées à chaque fois.
Pour toi, existe-t-il une technique pour ne supprimer que ces groupes de 16 lignes à valeurs 0 qui apparaissent plusieurs fois et conserver les autres lignes à valeurs 0 isolées dans le tableur ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 4/08/2010 à 22:11
Modifié par lermite222 le 4/08/2010 à 22:11
Bonjour,
Peut-être avec...
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Peut-être avec...
Sub SuppLigne() Dim Lig As Long, Col As Integer Dim Compter As Integer For Lig = 1873 To 9 Step -1 For Col = 2 To 7 If Cells(Lig, Col) <> 0 Then Exit For Next Col If Col = 8 Then Compter = Compter + 1 Else Compter = 0 If Compter = 16 Then Rows(Lig & ":" & Lig + 15).Delete Compter = 0 End If Next Lig End Sub
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Un grand merci car cela fonctionne impeccablement.
Dans tous les cas, tous mes sincères remerciements à vous deux (Krisstof et lermite222) pour avoir pris de votre temps à me dépanner.
Grâce à vous deux, je vais gagner un temps énorme sur ces fichiers professionnels.
Et bravo pour votre perspicacité et la rapidité à trouver la solution.
Très cordialement.
Dans tous les cas, tous mes sincères remerciements à vous deux (Krisstof et lermite222) pour avoir pris de votre temps à me dépanner.
Grâce à vous deux, je vais gagner un temps énorme sur ces fichiers professionnels.
Et bravo pour votre perspicacité et la rapidité à trouver la solution.
Très cordialement.