Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer lignes vierges

4 réponses
Avatar
Georges Schell
Bonjour les Cracks !

J'ai fait une micro-macro pour supprimer les lignes vierges dans une
sélection ; seul inconvénient, s'il y a 2 lignes vierges consécutives, une
seule est supprimée.

Ma question (bête) : Comment modifier la macro pour éviter cet inconvénient
? Peut-on la dérouler à l'envers avec un "Each" ? (en commençant par le bas)

Merci de votre attenction,

Georges

Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
adresse !

La macro :

Sub SupprLigVidTableau()
'supprime les lignes vides
For Each ligne In Selection.Rows
If ligne.Find("*") Is Nothing Then ligne.Delete
End If
Next
End Sub

PS
Q : Deux chèvres sont sur un bateau : BABI et BABA. BABA tombe à l'eau.  Que
se passe-t-il ?
R : BABA coule et BABI bêle.

4 réponses

Avatar
Denis Michon
Bonjour Georges,


Lorsque tu supprimes des lignes, tu te dois de commencer ta boucle par la dernière ligne de ta sélection vers la
première ligne et cela règlera ton problème.

Voici un exemple :

'------------------------
Private Sub Workbook_Open()

Dim Rg As Range, NbLig As Integer, A As Long
Set Rg = Selection
NbLig = Rg.Rows.Count

For A = NbLig To 1 Step -1
'supprime les lignes vides
With Rg
If .Rows(A).Find("*") Is Nothing Then Rows(A).Delete (xlUp)
End With
Next

End Sub
'------------------------


Salutations!




"Georges Schell" a écrit dans le message de news:BBC1842F.2445D%
Bonjour les Cracks !

J'ai fait une micro-macro pour supprimer les lignes vierges dans une
sélection ; seul inconvénient, s'il y a 2 lignes vierges consécutives, une
seule est supprimée.

Ma question (bête) : Comment modifier la macro pour éviter cet inconvénient
? Peut-on la dérouler à l'envers avec un "Each" ? (en commençant par le bas)

Merci de votre attenction,

Georges

Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
adresse !

La macro :

Sub SupprLigVidTableau()
'supprime les lignes vides
For Each ligne In Selection.Rows
If ligne.Find("*") Is Nothing Then ligne.Delete
End If
Next
End Sub

PS
Q : Deux chèvres sont sur un bateau : BABI et BABA. BABA tombe à l'eau. Que
se passe-t-il ?
R : BABA coule et BABI bêle.
Avatar
Denis Michon
Un petit oubli : Un point devant le deuxième ".rows(A)

Remplacer cette ligne
If .Rows(A).Find("*") Is Nothing Then Rows(A).Delete (xlUp)

Par :

If .Rows(A).Find("*") Is Nothing Then .Rows(A).Delete (xlUp)


Salutations!

Lorsque tu supprimes des lignes, tu te dois de commencer ta boucle par la dernière ligne de ta sélection vers la
première ligne et cela règlera ton problème.

Voici un exemple :

'------------------------
Private Sub Workbook_Open()

Dim Rg As Range, NbLig As Integer, A As Long
Set Rg = Selection
NbLig = Rg.Rows.Count

For A = NbLig To 1 Step -1
'supprime les lignes vides
With Rg
If .Rows(A).Find("*") Is Nothing Then Rows(A).Delete (xlUp)
End With
Next

End Sub
'------------------------


Salutations!




"Georges Schell" a écrit dans le message de news:BBC1842F.2445D%
Bonjour les Cracks !

J'ai fait une micro-macro pour supprimer les lignes vierges dans une
sélection ; seul inconvénient, s'il y a 2 lignes vierges consécutives, une
seule est supprimée.

Ma question (bête) : Comment modifier la macro pour éviter cet inconvénient
? Peut-on la dérouler à l'envers avec un "Each" ? (en commençant par le bas)

Merci de votre attenction,

Georges

Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
adresse !

La macro :

Sub SupprLigVidTableau()
'supprime les lignes vides
For Each ligne In Selection.Rows
If ligne.Find("*") Is Nothing Then ligne.Delete
End If
Next
End Sub

PS
Q : Deux chèvres sont sur un bateau : BABI et BABA. BABA tombe à l'eau. Que
se passe-t-il ?
R : BABA coule et BABI bêle.
Avatar
Georges Schell
Merci Denis, c'est magique !
Qu'est-ce que j'aimerais posséder le 10ième de tes connaissances en VBA !
Bien amicalement,

Georges

PS J'espère qu'il ne fait pas encore froid à Qc ! Ici (à Bordeaux), avec 7°
dans la journée, on gèle !


dans l'article XbQmb.13049$, Denis Michon à
a écrit le 26/10/03 14:43 :

Dim Rg As Range, NbLig As Integer, A As Long
Set Rg = Selection
NbLig = Rg.Rows.Count

For A = NbLig To 1 Step -1
'supprime les lignes vides
With Rg
If .Rows(A).Find("*") Is Nothing Then .Rows(A).Delete (xlUp)
End With
Next

End Sub


Georges

Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
adresse !

Avatar
Denis Michon
Bonjour Georges,

Ici , au Québec, c'est pluvieux et il fait entre 8 et 10 degrés.


Mais comme le Québec c'est un grand territoire, je ne serais pas surpris qu'il neige dans la partie la plus
septentrionale de la "Belle Province".


Salutations!



"Georges Schell" a écrit dans le message de news:BBC1B7E6.2449A%
Merci Denis, c'est magique !
Qu'est-ce que j'aimerais posséder le 10ième de tes connaissances en VBA !
Bien amicalement,

Georges

PS J'espère qu'il ne fait pas encore froid à Qc ! Ici (à Bordeaux), avec 7°
dans la journée, on gèle !


dans l'article XbQmb.13049$, Denis Michon à
a écrit le 26/10/03 14:43 :

Dim Rg As Range, NbLig As Integer, A As Long
Set Rg = Selection
NbLig = Rg.Rows.Count

For A = NbLig To 1 Step -1
'supprime les lignes vides
With Rg
If .Rows(A).Find("*") Is Nothing Then .Rows(A).Delete (xlUp)
End With
Next

End Sub


Georges

Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
adresse !