Supprimer une ligne quand une cellule est vide

Signaler
Messages postés
13
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
16 mai 2005
-
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
-
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

Merci d'avance !

4 réponses

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
25
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

jpleroisse
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
Lut,
dans ton code tu marques Rows.delete ton prob vient surement de là
remplaces par cellule.entirerow.delete

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
Messages postés
1
Date d'inscription
vendredi 4 novembre 2005
Statut
Membre
Dernière intervention
12 mars 2011

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.
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
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é