MACRO FILTRE AUTOMATIQUE

roni77300 Messages postés 34 Statut Membre -  
roni77300 Messages postés 34 Statut Membre -
Bonjour,

j'ai un tableau de quelques milliers de lignes.

je cherche à créer un filtre automatique sur une colonne (par exemple la B) avec plusieurs critères.

CAD que la macro me cache toutes les ligne dont le mot de la colonne B n'est ni "internet", ni "femme", ni "ordinateur" etc...etc...

pouvez vous me donner la solution.

je commence a me mettre au macro et je risque de solliciter souvent votre aide.

un grand merci aux utilisateurs qui me fileront un coup de main.

roni77300
Configuration: Windows XP Internet Explorer 6.0

3 réponses

  1. m@rina Messages postés 27590 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    Par le filtre automatique, on ne peut utiliser que 2 critères, VBA ou pas.
    Donc voici un code qui utilise une autre solution :

    Sub filtre()
    
    For Each cellule In ActiveSheet.Range("B:B")
    If cellule.Value = "internet" Or cellule.Value = "femme" Or cellule.Value = "ordinateur" Then
    cellule.EntireRow.Hidden = True
    End If
    Next
    
    End Sub


    m@rina
    1
    1. roni77300 Messages postés 34 Statut Membre
       
      bonjour,

      puisque le filtre automatique n'a que deux critere maximum, je souhaite mettre en place une macro qui me masque automatiquement les lignes.

      je m'explique :

      dans mon tableau, j'aimerai que la macro me masque la premiere ligne si le contenu de sa colonne B n'est ni "allo", ni "bonjour", ni "pourquoi", ni "faim", ni "peur". et que la macro fasse cela jusqu'a la derniere ligne du tableau.

      merci bien de m'avoir répondu une premiere fois. j'espere que tu pourras m'aider sur mon nouveau probleme.

      bonne apres midi !
      0
  2. m@rina Messages postés 27590 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    puisque le filtre automatique n'a que deux critere maximum, je souhaite mettre en place une macro qui me masque automatiquement les lignes.

    Euh... et à ton avis, elle sert à quoi la macro que je t'ai écrite ????

    m@rina

    0
    1. roni77300 Messages postés 34 Statut Membre
       
      Bonjour,

      j'ai essayé Ta requete.

      voila ce que cela donne :

      Sub filtre()

      For Each cellule In ActiveSheet.Range("E:E")
      If cellule.Value = "SOUS-RESEAU DEPART.COURRIER" Or cellule.Value = "IZ ROUTE" Or cellule.Value = "REGIONAL COURRIER" Then
      cellule.EntireRow.Hidden = True
      End If
      Next

      End Sub

      lorsque j'éxécute la macro, les lignes dont la valeur de la colonne E sont "SOUS-RESEAU DEPART.COURRIER" ou les deux autres criteres, disparaissent.

      je voudrait au contrairet, que ca soit ces lignes là qui restent.

      je te remercie pour ta réponse.
      0
      1. m@rina Messages postés 27590 Date d'inscription   Statut Modérateur Dernière intervention   11 562 > roni77300 Messages postés 34 Statut Membre
         
        Bonjour roni77300

        Dans ce cas essaie ceci :

        Sub filtre()
        
        For Each cellule In ActiveSheet.Range("E:E")
        If cellule.Value <> "SOUS-RESEAU DEPART.COURRIER" And cellule.Value <> "IZ ROUTE" And cellule.Value <> "REGIONAL COURRIER" And cellule.Value <> "" Then
        cellule.EntireRow.Hidden = True
        End If
        Next
        
        End Sub


        J'ai fait le test sur toute la colonne E, mais tu peux limiter à ta plage. Dans ce cas à la place de E:E, mets la plage précise.

        m@rina
        0
      2. roni77300 Messages postés 34 Statut Membre > m@rina Messages postés 27590 Date d'inscription   Statut Modérateur Dernière intervention  
         
        bonjour M@rina.

        un grand merci.

        seulement, j'aimerai juste que la premiere ligne ne soit pas prise en compte dans cette manip'.
        0
  3. roni77300 Messages postés 34 Statut Membre
     
    bonsoir.

    oups :-)

    désolé marina.

    je pensai que tu restais sur un filtre auto. comme tu vois je n'y connais rien.

    je réessaye demain.

    promis je te tiens au courant... promis aussi si j'ai d'autres probleme je te recontact.

    encore merci et bonne soirée

    roni77300
    0