VBA EXCEL supprimer les lignes à zéro

Fermé
slymo Messages postés 3 Date d'inscription lundi 7 août 2017 Statut Membre Dernière intervention 8 août 2017 - 7 août 2017 à 17:21
slymo Messages postés 3 Date d'inscription lundi 7 août 2017 Statut Membre Dernière intervention 8 août 2017 - 8 août 2017 à 09:16
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
A voir également:

1 réponse

via55 Messages postés 14496 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 22 novembre 2024 2 735
7 août 2017 à 17:32
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
slymo Messages postés 3 Date d'inscription lundi 7 août 2017 Statut Membre Dernière intervention 8 août 2017
7 août 2017 à 18:22
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
via55 Messages postés 14496 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 22 novembre 2024 2 735 > slymo Messages postés 3 Date d'inscription lundi 7 août 2017 Statut Membre Dernière intervention 8 août 2017
7 août 2017 à 19:17
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
slymo Messages postés 3 Date d'inscription lundi 7 août 2017 Statut Membre Dernière intervention 8 août 2017 > via55 Messages postés 14496 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 22 novembre 2024
8 août 2017 à 09:16
merci beaucoup
0