Supprimer lignes avec toutes cellules = 0
Résolu
JML0858
-
JML0858 -
JML0858 -
Bonjour,
Je souhaiterai savoir comment supprimer avec une macro VBA toutes les lignes d'un classeur très volumineux (> 1500 lignes) qui ont toutes leurs cellules complétées par la valeur 0.
Merci d'avance.
Je souhaiterai savoir comment supprimer avec une macro VBA toutes les lignes d'un classeur très volumineux (> 1500 lignes) qui ont toutes leurs cellules complétées par la valeur 0.
Merci d'avance.
6 réponses
-
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.
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. -
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. -
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 ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
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.