Suppression lignes sous condition

Résolu
Bonjour,

Bonjour, j'ai un souci de programmation
Sur une plage allant de A3:E7000, je souhaiterais supprimer toutes les lignes où C ne contient pas le mot TOTO
Pouvez-vous m'aider à trouver la bonne macro (et éventuellement m'expliquer la logique). Merci bcp

3 réponses

  1. Bjr,

    Sub test()

    For i = 7000 to 3 step -1 'on initie la boucle de manière décroissante car on va supprimer des lignes

    If Cells(i,3).value Like "*TOTO*" Then 'Condition : "si Ci contient TOTO alors"
    Else
    Rows(i & ":" & i).Delete Shift:=xlUp 'on supprime la ligne i, cela s'applique lorsque Ci ne contient pas TOTO
    End If

    Next i 'on termine la boulce

    End Sub
    1. Contributeur
      Bonjour

      On ne boucle que sur la condition (adapter la condition "toto" )

      Option Explicit
      Const Nom As String = "toto"
      '-------------------------
      Sub sanstoto()
      Dim Nbre As Integer, Lig As Integer, Cptr As Integer

      Application.ScreenUpdating = False
      Nbre = Application.CountIf(Columns("C"), "*" & Nom & "*")
      For Cptr = 1 To Nbre
      Lig = Columns("C").Find(Nom, Range("C2"), xlValues).Row
      Rows(Lig).Delete
      Next
      End Sub


      si le nombre de toto est important (>env 500), on pourra tenter un code + rapide mais + compliqué. Tu dis si cela t'intéresse ;o)
       Michel
      1. merci bcp :) Ca marche