VBA supprimer des ligne vide excel ;) [Résolu]

Signaler
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
18 octobre 2010
-
lolpop
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
18 octobre 2010
-
rororo mais qui sais qui revient poster sur le forum, et oui c'est momo :D
je voudrai supprimer des lignes vides lorsque l'on lance un userform, j'ai fait le code suivant qui marche lorsqu'il y a une seule ligne vide d'affilé, si il y a deux ligne vide ça en supprime qu'une seul.
voila mon code :
Private Sub UserForm_Initialize()
Dim i, j As Long
i = 200
While Feuil1.Cells(i, 1) = ""
i = i - 1
Wend
MsgBox i


For j = 1 To i
If Feuil1.Cells(j, 1) = "" Then
Feuil1.Rows(j).Delete Shift:=xlUp
Else
End If
Next j
End Sub





Je comprend pourquoi ca ne marche pas mais je n'arrive pas a trouvé comment faire.
quand il y a 2 ligne vide , la premier est supprimer, et comme quand on supprime la seconde ligne vide remonte et que le j=j+1 ca passe au dessus.
si quelqu'un avais une idée :)
merci encore

5 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
46
Salut,

Sinon ce que tu peux essayer c'est de commencer ta boucle par le bas comme ca tu n'auras plus le problème

for j = i to 1 Step -1

....

Next

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
18 octobre 2010

merci bien a vous tous, je men sui tiré avec ceci :

j = 1
While j <= i
If Feuil1.Cells(j, 1) = "" Then
Feuil1.Rows(j).Delete Shift:=xlUp
i = i - 1
Else
j = j + 1
End If
Wend
End Sub
Messages postés
61
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
14 septembre 2006

plus simple :

Range("A1:A200").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
46
Salut,
Exemple
Ligne 26 Vide
Ligne 27 Vide
Ligne 28 Pas Vide

Lorsque tu supprime une ligne ex 26 la ligne 27 devient la ligne 26 et la 28 la 27 donc dans ta boucle tu as déja fait la ligne 26 donc tu passes à la 27 qui alors n'est pas vide

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
18 octobre 2010

oui oui j'avais compris ca :)
mais le probleme c'est que je ne sais pas coment faire pour supprimer la seconde ligne vide, j'avais penser a mettre dans le if j=j-1 m   mais ca bug et ca boucle en continue.