Supprimer ligne si

latanz

XLDnaute Nouveau
Bonjour

pouvez-vous m'aider? je souhaite supprimer les lignes 87-88-89-90-91 de la feuille 2 si la cellule B26 de la feuille 1 est égale à Vide.

Merci pour votre aide
 

pedrag31

XLDnaute Occasionnel
Re : Supprimer ligne si

Bonjour Latanz, bonjour le forum,

Essaie peut être la macro suivante :

Code:
Sub SupprimerLesLignes()

If Range("B26").Value = "" Then
    i = 91
    Do
        Rows(i).Delete
        i = i - 1
    Loop Until i = 85
End If

End Sub

Bonne journée, :)
 

latanz

XLDnaute Nouveau
Re : Supprimer ligne si

et si je souhaite faire la même chose pour la cellule B27 = "vide" alors je supprime les lignes 94 à 92 ? Je ne parviens pas à les mettre ensemble...
voici ce que j'ai fait !

Sub SupprimerLesLignes()

If Range("B26").Value = "Vide" Then
i = 91
Do
Rows(i).Delete
i = i - 1
Loop Until i = 85
End If

If Range("B27").Value = "Vide" Then
i = 94
Do
Rows(i).Delete
i = i - 1
Loop Until i = 92

End If

End Sub
 

pedrag31

XLDnaute Occasionnel
Re : Supprimer ligne si

Re,

Impeccable, je vois que tu a deja commence a bidouiller du code...
Tu y es presque:

Code:
Sub SupprimerLesLignes()

[COLOR="DarkGreen"]'test si le range (=la zone=ici la cellule B27) est vide donc egal a rien (="")[/COLOR]
If Range("B27").Value = "" Then
i = 94
[COLOR="DarkGreen"]'debut de la boucle[/COLOR]
Do
[COLOR="DarkGreen"]'supprime la ligne i (94, puis 93, puis 92)[/COLOR]
Rows(i).Delete
i = i - 1
Loop Until i = 91 [COLOR="DarkGreen"]'la boucle s'arrete des que i est egal a 91 
(cad que la ligne 92 vient juste d'etre supprimee)[/COLOR]

End If


If Range("B26").Value = "" Then
i = 91
Do
Rows(i).Delete
i = i - 1
Loop Until i = 85
End If


End Sub

La macro qui supprime des lignes 92 a 94 doit être avant celle qui supprime de 85 a 91 car, lorsque tu supprimes la ligne 85, par exemple, la ligne 86 (avant la suppression) devient alors la ligne 85 (après la suppression) ce qui fait que tes lignes se décalent vers le haut et que tu finis par supprimer des lignes 92, 93 et 94 qui sont pas du tout les lignes que tu voulais!!!

Donc c'est pour cela que tu commences ta macro "par le bas" et en remontant la liste pour être sur que tes lignes gardent le même numéro tout au long de ma macro... Donc il te faut supprimer dans l'ordre ligne 94, 93, 92, 91, 90, 89, 88, 87, etc comme ça tu n'as pas de décalage de numéro de ligne...

++

Bonne journee, :)
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
666