VBA Supprimer les lignes sur critère

Bonjour à tous,

Dans le fichier ci-joint, je souhaiterais, avec une macro VBA qu'après j'attacherai à un bouton cliquable,

Pouvoir dans la colonne E, recherchais toutes les combinaison commençant par FR et si en colonne E ça commence par FR alors je voudrais supprimer toute la ligne

Si possible d'obtenir le code directement sur l'échange sans avoir de fichier à ouvrir ce serai top

Merci d'avance,

Nalyd

6fichier-com.xlsx (10.49 Ko)

Bonjour,

Ma proposition :

Sub Bouton1_Cliquer()
With ActiveSheet
    For i = 2 To .Range("A65535").End(xlUp).Row
        If Left(.Cells(i, "E"), 2) = "FR" Then
            .Rows(i).EntireRow.Delete
            i = i - 1
        End If
    Next
End With
End Sub

A bientot.

Bonjour,

Merci pour votre réponse,

Malheureusement la macro prend énormément de temps,

Il y a t -il un moyen que ça se fasse d'un trait ?

Merci à vous

Bonjour,

Alors sur le fichier que tu as envoyé il n'y a que 11 lignes.

Si c'est la dessus que le programme prend du temps prend un PC plus puissant.

Sinon il y a sûrement beaucoup beaucoup de lignes sur ton fichier de base et faire un traitement d'un trait n'est pas possible. Excel doit traité chaque cellule de cette colonne pour la tester, il ne sait pas gérer toute une colonne en même temps.

Combien as tu de lignes, et combien de temps le programme prend t'il ?

Cela doit être à cause du fichier,

J'ai plus de 8000 lignes

Bonsoir,

une solution "litérale" :
Faire un tri afin de regrouper tous les "FR" ensemble, puis trouver le numéro de ligne du premier, trouver le numéro de ligne du dernier, effacer la plage de ligne allant du premier au dernier. Le "Delette" ne fera qu'un accès feuille, ce sera plus rapide à mon sens.

Une autre solution :
mettre la plage de cellule dans un tableau "VBA", faire la suppression des lignes en VBA par la création d'un nouveau tableau ne comportant pas les "FR", vider la feuille, copier coller le deuxième tableau VBA sur la feuille.

@ bientôt

LouReeD

Une autre solution :

Filtre textuel avec "commence par "FR" sur votre plage transformée en tableau structuré sous Excel.
Suppression des lignes visibles. Enlever le filtre

@ bientôt

LouReeD

Personnellement j'opte pour cette dernière solution :

Sub SupLigneFR()
    Application.ScreenUpdating = False
    ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=5, Criteria1:= _
        "=FR*", Operator:=xlAnd
    Application.DisplayAlerts = False
    ActiveSheet.ListObjects("Tableau1").DataBodyRange.SpecialCells(xlVisible).Delete
    ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=5
    Application.DisplayAlerts = True
End Sub

@ bientôt

LouReeD

Rechercher des sujets similaires à "vba supprimer lignes critere"