Supprimer lignes vides (1 mini)

Coucou les jeunes ! ! !

Je suis parti de celle macro

On Error Resume Next
    [A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete

J'ai essayé de bidouiller la macro pour faire ce que je veux mais ça foire, un peu d('aide svp?

Je veux :

  • Repérer les lignes vides en A
  • Les supprimer, sauf 1 par bloc de suppression.

exemple : entre 2 blocs de données en A il y a 5 lignes vides, je veux qu'il en supprime que 4. Mais si il y en a 1 seule vide, il ne fait rien.

En espérant que vous puissiez m'aider, Bonne journée

Bonjour,

Le code est correct. Essaye comme ça :

Sub test()
    Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Bonjour,

Une proposition

Sub Test()
Dim CelDebut As Range, CelFin As Range
    Set CelDebut = Range("A1").End(xlDown).Offset(2)
    If IsEmpty(CelDebut) Then
        Set CelFin = CelDebut.End(xlDown).Offset(-1)
        Range(CelDebut, CelFin).EntireRow.Delete
    End If
End Sub

A+

frangy a écrit :

Bonjour,

Une proposition

Sub Test()
Dim CelDebut As Range, CelFin As Range
    Set CelDebut = Range("A1").End(xlDown).Offset(2)
    If IsEmpty(CelDebut) Then
        Set CelFin = CelDebut.End(xlDown).Offset(-1)
        Range(CelDebut, CelFin).EntireRow.Delete
    End If
End Sub

A+

Coucou, merci de la réponse rapide. La macro s'exécute deux fois, mais pas trois donc si il y a plus de 3 fois ou il y a 2 lignes viles (ou plus) ça ne le fait pas. Faire une boucle avec un nombre défini de passages? (il peut y avoir au max 10 "séparations" sur ma feuille donc for / next pour 10?

Mouais ! encore fallait-il deviner qu'il y avait plusieurs plages de cellules vides à traiter.

En tant que membre habitué, tu sais qu'il est préférable de joindre un fichier exemple pour faciliter la compréhension du problème

Essaie donc comme cela :

Sub Test()
Dim CelInit As Range, CelDebut As Range, CelFin As Range
    Set CelInit = Range("A1")
    Do While CelInit.Row < Range("A" & Rows.Count).End(xlUp).Row
        Set CelDebut = CelInit.End(xlDown).Offset(2)
        If IsEmpty(CelDebut) Then
            Set CelFin = CelDebut.End(xlDown).Offset(-1)
            Set CelInit = CelFin.Offset(1)
            Range(CelDebut, CelFin).EntireRow.Delete
        Else
            Set CelInit = CelDebut
        End If
    Loop
End Sub

A+

Oui désolé je n'y ai pas pensé sur le moment pour moi c'était naturel, parce que je connais le fichier. My bad

C'est parfait en tout cas merci

Rechercher des sujets similaires à "supprimer lignes vides mini"