Supprimer ligne vide

Bonjour ,

https://www.cjoint.com/c/HCEnLlUggQW. j'ai réduit le fichier au max

Bonjour,

j'ai testé cela fonctionne avec un autre code, ton classeur doit être enregistré en .xlsm (acceptant les macros)

testé 6 fois ok ci-joint

remerciement à Jean-Eric

taille 4.76 Mio

https://www.cjoint.com/c/HCEo1srK3sZ

à mettre dans un module :

 Option Explicit
Public Sub Supprime_lignes_vides()
' déclarations des variables
Dim i As Integer, DerniereLigne As Integer

DerniereLigne = Range("b65536").End(xlUp).Row

For i = DerniereLigne To 1 Step -1
    If Worksheets("recherchev").Cells(i, 2) = "" Then Worksheets("recherchev").Rows(i).Delete
Next i

End Sub

crdlt,

André

Bonjour,

avec le next i , la macro ne s’arrête pas . comment faire ??

Re,

et en essayant d'ajouter On error goto 0

On Error Resume Next

Ignore la ligne qui cause l'erreur et passe à la suivante sans message d'erreur

On error goto 0

Annule la fonction de 'On Error Resume Next'

 Option Explicit
Public Sub Supprime_lignes_vides()
' déclarations des variables
On Error GoTo 0
Dim i As Integer, DerniereLigne As Integer

DerniereLigne = Range("b65536").End(xlUp).Row

For i = DerniereLigne To 1 Step -1
    If Worksheets("recherchev").Cells(i, 2) = "" Then Worksheets("recherchev").Rows(i).Delete
Next i

End Sub

tiens moi au courant, normalement cela devrait fonctionner

crdlt,

André

Bonjour,

Merci ca marche très bien .

RE ,

est ce que c'est normal que sur un fichier qui contient 5000 lignes la macro tarde a supprimer .

Re,

ce que je pense personnellement :

-après, si tu as d'autres applications ouvertes autre que ton classeur cela se peut que cela freine, de plus, elle contient des formules sur chaque lignes de tes 2 colonnes et je pense que, c'est cela qui ralentit,

Question : combien de temps en secondes ou minutes ?

voir avec une réponse d'un expert d'Excel qui pourra sans doute mieux te répondre

crdlt,

André

Bonjour,

Je ne désespère pas et je persévère!...

Cdlt.

Public Sub CleanData()
Dim n As Long
Dim Cell As Range, rng As Range, Urng As Range
Dim t As Single
    t = Timer
    With ActiveSheet
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set rng = .Cells(2, 2).Resize(n - 1).SpecialCells(-4123)
        On Error GoTo 0
        If Not rng Is Nothing Then
            For Each Cell In rng
                If Len(Cell) = 0 Then
                    If Urng Is Nothing Then
                        Set Urng = Cell
                    Else
                        Set Urng = Union(Urng, Cell)
                    End If
                End If
            Next Cell
        End If
    End With
    If Not Urng Is Nothing Then Urng.EntireRow.Delete shift:=xlUp
    MsgBox VBA.Round(Timer - t, 3) & " seconde(s)", vbInformation, "Durée procédure"
End Sub

Bonjour,

Set rng = .Cells(2, 2).Resize(n - 1).SpecialCells(-4123) il y a une erreur sur cette ligne.

Merci

Re, bonjour toutes et tous et bon week-end

@Abdernino, je viens de voir que dans la colonne A, certaines cellules ont une Mise en Forme Conditionnelle ainsi que la colonne A entière et que d'autres cellules toujours de la colonne A non, apparemment c'est cela qui fait beugué les suppressions de lignes.

une seule MFC si doublon(s) de la même référence dans la colonne A suffit et de ne pas faire une par une sur les cellules de la colonnes A

voir si c'est ok avec 1 seule MFC pour la colonne ==> https://www.cjoint.com/c/HCFiwy6rXxZ

si, cela ne fonctionne toujours pas il faudra tester sans la MFC,et les supprimés dans la colonne A ( supprimer la règle)

à vérifier également si les colonnes' B' et 'C', etc. ne contiennent-elles pas aussi des MFC

ci-joint en image

crdlt,

André

z489

Re,

Sur ton fichier de 4Mo qui comporte 4 lignes, ma procédure fonctionne parfaitement.

Que ne dis tu pas ?

Cdlt.

/-Bonjour ,

je supprimer la mfc et j'ai toujours le même problème sur cette ligne

moi je n'ai pas que 2 colone dans mon tableau mais de (B,AO)

Set rng = .Cells(2, 2).Resize(n - 1).SpecialCells(-4123)

Bonjour,

Merci çà marche très bien .

Bonjour,

Mes macros son sur une feuille que j'ai appelé "MENU" , je veux appelé cette Marco depuis cette feuille sachant que la macro sur la recherchev.

Merci

Rechercher des sujets similaires à "supprimer ligne vide"