difovelo
Messages postés13Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention16 mai 2005
-
10 mai 2005 à 17:57
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 2022
-
12 mars 2011 à 15:07
Bonjour,
Je souhaiterais supprimer 1 ligne lorsque que la cellule de la colonne A est vide, mais ça me supprime toutes les lignes, même celle avec une cellule pleine.
Voilà mon programme:
Sub Select_case()
Dim collection As Range
Dim cellule As Range
Set collection = Range("A2:A351")
For Each cellule In collection
Select Case cellule
Case Not IsEmpty(cellule)
Rows.Delete
End Select
Next
End Sub
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 10 mai 2005 à 18:39
Il n'est pas possible de supprimer un ligne uniquement sur une cellule vide, par exemple, si a1 est vide mais que B1 contient des données, cette ligne ne sera pas supprimée.
Cette macro supprime les lignes vides entre les données.
Sub SupprimerLignesVides()
Dim DernièreLigne As Long
Dim r As Long
DernièreLigne = ActiveSheet.UsedRange.Row - 1
DernièreLigne = DernièreLigne + ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = DernièreLigne To 1 Step -1
If Application.WorkSheetFunction.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
Fennec66
Messages postés1Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention12 mars 2011 12 mars 2011 à 08:54
Bonjour,
J'ai testé ce code. Dans le premier exemple, en effet, il supprime carrément tout.
En remplaçant par cellule.entirerow.delete, ça fonctionne mais il faut le faire plusieurs fois, il ne le fait pas en un seul passage et je ne vois pas trop pourquoi, le code a l'air correct.
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 12 mars 2011 à 15:07
Lut,
vieux sujet là !
Il m'est arrivé ce genre de problèmes
Tu devrais tester ton code en partant de la fin de tes lignes et non pas du début le fait de supprimer des lignes pose problème au niveau du code.
LR = Selection.Rows.Count "ou une plage de lignes"
With Selection
For n = LR To 1 Step -1
Ton code ici
Next n
End With
Cordialement, Jean-Paul ______________________________________________________________________
Le Savoir n'a de valeur que s'il est partagé