Optimisation macro : rechercher critère, supprimer ligne

Bonjour,

J'ai un petit souci avec cette macro. En effet, elle est lente et second point, si le mot clé recherché est présent dans 2 lignes à la suite, il ne supprime pas les 2, mais une seule !

Sub Deletetypelotse()

Dim Cell As Range

For Each Cell In Range("f1:f10000")
If InStr(Cell.Value, "lot") <> 0 Then
Cell.EntireRow.Delete
End If
Next Cell

End Sub

Si quelqu'un sait comment, je pourrais procéder, merci !

Bonsoir,

Un filtre élaboré fera très bien l'affaire, temps instantané

envoie un fichier (anonymisé et raccourci si besoin)

en précisant le genre de requête

Amicalement

Claude

Bonjour,

Voici un fichier d'exemple, donc, je souhaite en fonction d'un mot clé (lot) dans la colonne F, supprimer la ligne correspondante. Je souhaite faire cela avec une macro, car j'ai une dizaine de mots clés (enchainement de macro) sur un fichier de 10 000 lignes, et je dois faire cela chaque jour.

Merci

119test-macro.xlsm (12.91 Ko)

re,

j'ai une dizaine de mots clés

où se trouve ces mots, tu as une liste ?

le mieux aurait été de colorer les cellules pour voir les lignes à supprimer

(pour compréhension du problème)

à te relire

Claude

Je viens de colorier les lignes à supprimer en rouge. Au niveau des mots-clés, j'ai :

lot

modernisation

phase

exercice

tautologie

néologisme

scénario

filmographie

philosophie

Mais, un seul mot-clé pour le moment suffit, celui-ci : lot. Si, celle-ci fonctionne, après, je pourrais créer autant de macro qu'il y a de mot clé, et je les enchainerais.

Merci

85test-macro.xlsm (14.27 Ko)

re,

Tu mets le mot clé en F2, ce pourrait être une liste déroulante

Sub SupprLigne()
Dim Lg%, Plg As Range
'Macro par Claude Dubois pour "kakemphaton" Excel-Pratique le 05/02/11
    Application.ScreenUpdating = False
    On Error Resume Next
        ActiveSheet.ShowAllData
    On Error GoTo 0
        Lg = Range("a65536").End(xlUp).Row
        Cells(2, 11) = "=COUNTIF(f5,""*"" &$f$2&""*"")>0"
        Set Plg = Range("a4:j" & Lg)
    With Plg
        .AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("k1:k2"), Unique:=False
        .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With
        Cells(2, 11).ClearContents
        On Error Resume Next
        ActiveSheet.ShowAllData
End Sub

Nota:

Un code "Sub" se met dans un Module

les "Private Sub" dans le VBE de la feuille

Amicalement

Claude

Un grand merci Claude, super rapide, mais il y a juste un mini souci, je viens de faire un test. Le hic, lorsque 2 lignes avec le même mot clé se suivent, la macro efface une seule ligne sur les 2.

Si, je copie colle, la

merci

re,

impossible !

revoie ce que tu as écrit

En effet, tu as raison, je m'étais trompé en transposant ta macro sur mon fichier, désolé, merci encore

si Ok

a resolu3
Rechercher des sujets similaires à "optimisation macro rechercher critere supprimer ligne"