VBA si B ET C vide, supprimer lligne

Bonjour,

J'ai fichier qui contient des lignes inutiles. Je voudrais effacer toutes les lignes si B ET C sont vide.

La ligne (1) de titre est toujours remplie, en revanche la fin du tableau est par définition vide. Il faudrait donc que la macro s'arrête si par exemple il n' y a plus de valeur dans A.

Merci beaucoup cela m'aiderait à nettoyer mon fichier qui est pénible à lire .

Bonjour Sevun,

je te propose ce code VBA :

Option Explicit

Sub Essai()
  Dim dlig&, lig&
  dlig = Cells(Rows.Count, "A").End(xlUp).Row: Application.ScreenUpdating = False
  For lig = dlig To 2 Step -1
    If IsEmpty(Cells(lig, "B")) And IsEmpty(Cells(lig, "C")) Then Rows(lig).Delete
  Next lig
End Sub

normalement, ça devrait marcher ; sinon, essaye avec :

If Cells(lig, "B") = "" And Cells(lig, "C") = "" Then Rows(lig).Delete

merci de me dire si ça te convient.

dhany

Bonjour,

J'ai fichier qui contient des lignes inutiles. Je voudrais effacer toutes les lignes si B ET C sont vide.

La ligne (1) de titre est toujours remplie, en revanche la fin du tableau est par définition vide. Il faudrait donc que la macro s'arrête si par exemple il n' y a plus de valeur dans A.

Merci beaucoup cela m'aiderait à nettoyer mon fichier qui est pénible à lire .

Bonjour,

C'est faisable sans macro, via un filtre sur B et C, en supprimant les lignes concernées.

Sinon, en VBA, voilà une possibilité :

Sub SupprLignes()

Dim LigMax As Long, Lig As Long 'Déclaration des variables utilisées

Application.ScreenUpdating = False 'Désactive l'affichage
Application.Calculation = xlCalculationManual 'Désactive le recalcul auto des formules Excel

With Sheets("TaFeuille") 'Toute instruction commençant par "." ce réfère à cette feuille
    LigMax = .Range("A" & .Rows.Count).End(xlUp).Row 'Dernière ligne non vide
    For Lig = LigMax To 2 Step -1 'Parcourir les lignes en partant de la dernière
        If IsEmpty(.Range("B" & Lig)) And IsEmpty(.Range("C" & Lig)) Then .Rows(Lig).Delete 'Si B et C sont vides, suppression de la ligne
    Next Lig
End With

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

Edit : Salut dhany !

les deux fonctionnent parfaitement, merci beaucoup.

Le filtre fonctionne aussi mais la macro va plus vite

merci pour ton retour, et pour avoir passé le sujet en résolu !

bonne continuation !

dhany

Rechercher des sujets similaires à "vba vide supprimer lligne"