Ne laisser qu'une ligne de vide entre texte

Bonjour à tous,

je recherche une macro pour supprimer toutes les lignes vides en partant de la colonne B.

Il arrive que j'ai 3 ou 2 lignes de vide dans mon tableau.

en fait je ne veux plus qu'une ligne vide entre 2 lignes de texte.

c'est plus facile de voir l'exemple dans mon fichier joint.

merci d'avance de votre aide

cordialement atoch

Bonsoir,

Essaie ce code à placer dans un module.

Sub SupLigne()
Dim Derl%, v%, depart%
With ActiveSheet
   Derl = .Range("B" & Rows.Count).End(xlUp).Row
   v = 0: depart = 3
   For i = depart To Derl
      If .Cells(i, "B") <> "" Then v = 0
      If .Cells(i, "B") = "" Then v = v + 1
      If v = 2 Then
         v = 0
         Rows(i).Delete
      End If
   Next i
End With
End Sub

Il faudra le lancer plusieurs fois si tu as plus de deux lignes vides.

Coridalement

Bonsoir atoch, ddetp88, le forum,

Un essai....CTRL+e pour exécuter la macro

Sub test()
  Dim lig As Long

  Application.ScreenUpdating = False

With Sheets("Feuil1")
 .Range("B2:B" & Range("B" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete  'supprime lignes vides
  For lig = .Range("B" & Rows.Count).End(xlUp).Row To 2 Step -1
   If .Range("A" & lig) <> "" Then .Rows(lig).Insert      'insère 1 ligne vide
  Next lig
End With

 Application.ScreenUpdating = True

End Sub

Cordialement,

Bonjour xorsankukai ,

le code fonctionne à merveille

j'ai juste un soucis au niv des lignes qu'il m'insère, il faut partire de la dernière ligne de la colonne B mais doit s'arrêter à la ligne n°13. Tout ce qui est depuis la ligne 1 à 12 inclus ne doit pas être changé.

merci de votre aide

cordialement atoch

Bonsoir ddetp88,

merci de votre aide et solution. je vais la tester et vous redis.

cordialement atoch

Re,

j'ai juste un soucis au niveau des lignes qu'il m'insère, il faut partir de la dernière ligne de la colonne B mais doit s'arrêter à la ligne n°13.

A tester :

Sub test()
  Dim lig As Long

  Application.ScreenUpdating = False

With Sheets("Feuil1")
 .Range("B2:B" & Range("B" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete  'supprime lignes vides
  For lig = .Range("B" & Rows.Count).End(xlUp).Row To 13 Step -1
   If .Range("A" & lig) <> "" Then .Rows(lig).Insert      'insère 1 ligne vide
  Next lig
End With

 Application.ScreenUpdating = True

End Sub

Bonne nuit....

bonjour xorsankukai,

j'ai trouvé la solution en adaptant un peu ta formule.

un grand merci pour ton aide.

cordialement atoch

Rechercher des sujets similaires à "laisser ligne vide entre texte"