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

lolpop 211 Messages postés mercredi 4 août 2004Date d'inscription 18 octobre 2010 Dernière intervention - 20 juin 2006 à 16:05 - Dernière réponse : lolpop 211 Messages postés mercredi 4 août 2004Date d'inscription 18 octobre 2010 Dernière intervention
- 20 juin 2006 à 18:21
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
Afficher la suite 

5 réponses

Répondre au sujet
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 20 juin 2006 à 17:25
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jrivet
lolpop 211 Messages postés mercredi 4 août 2004Date d'inscription 18 octobre 2010 Dernière intervention - 20 juin 2006 à 18:21
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de lolpop
cs_bipou 61 Messages postés mercredi 14 janvier 2004Date d'inscription 14 septembre 2006 Dernière intervention - 20 juin 2006 à 17:53
+1
Utile
plus simple :

Range("A1:A200").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Commenter la réponse de cs_bipou
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 20 juin 2006 à 16:39
0
Utile
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
Commenter la réponse de jrivet
lolpop 211 Messages postés mercredi 4 août 2004Date d'inscription 18 octobre 2010 Dernière intervention - 20 juin 2006 à 17:03
0
Utile
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.
Commenter la réponse de lolpop

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.