VBA EXCEL supprimer les lignes à zéro

slymo Messages postés 3 Statut Membre -  
slymo Messages postés 3 Statut Membre -
Bonjour,

Je souhaite par une macro VBA (je n'ai pas été formé à la programmation), automatiser la suppression de lignes entières quand dans la colonne B il y a zéro (le fichier fait pour le moment 52 feuilles et je souhaite que la macro ne se fasse que sur 50 d'entre elles, et qu'elle fonctionne sur des futures feuilles qui pourraient s'ajouter)

Sur le site, j'ai trouvé un bout de réponse par la macro ci-dessous (que j'ai un peu retouché pour qu'elle se fasse sur la colonne que je souhaite), mais que dois-je rajouter pour qu'elle se fasse sur les feuilles de mon choix ?

Public Sub SupprLigneCellZero_ColB()
Dim x As Long
Dim y As Long
x = Range("B1048576").End(xlUp).Row

For y = x To 1 Step -1

If Cells(y, 2).Value = 0 Then

Rows(y).Delete

End If

Next y
End Sub

Merci pour votre aide

1 réponse

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour,

    Si les feuilles se suivent tu peux faire une boucle sur les feuiles :
    Public Sub SupprLigneCellZero_ColB()
    Dim x As Long
    Dim y As Long
    ' boucle sur les feuilles 3 à 50 A ADAPTER en fonction des feuilles à traiter
    For f=3 to 50
    ' ou alors si on veut boucler depuis la 3eme feuille jusqu'à la derniere celle ci étant variable si on augmente le nombre de feuilles :
    ' For f = 3 to sheets.Count
          With sheets(f) ' pour ne pas avoir à répéter le nom de la feuille, il sera       remplacé dans chaque ligne par un point devant Range, Cells ou Rows
          x = .("B1048576").End(xlUp).Row
              For y = x To 1 Step -1
                  If .Cells(y, 2).Value = 0 Then .Rows(y).Delete ' sur une seuligne évite le end if
              Next y
          End With
      Next f
    End Sub


    Cdlmnt
    Via
    0
    1. slymo Messages postés 3 Statut Membre
       
      Merci via55 pour ta réponse

      Etant novice, pourrais-tu stp me faire apparaître que la syntaxe que je dois garder au final (en prenant l'option de boucler de la feuille 3 à la dernière) car avec tes commentaires parmi la macro, je ne suis pas sûr du texte à garder

      Merci d'avance
      0
      1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759 > slymo Messages postés 3 Statut Membre
         
        Re

        tu supprimes For f=3 to 50
        puis tu enlèves l'apostrophe de la ligne
        ' For f = 3 to sheets.Count pour la rendre active (elle n'est plus écrite en vert)

        Cdlmnt
        Via
        0
      2. slymo Messages postés 3 Statut Membre > via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention  
         
        merci beaucoup
        0