1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : avril 2007
    Messages : 3
    Points : 2
    Points
    2

    Par défaut [VBA]Macro pour lancer une recherche dans un tableau

    Bonjour,

    J'aimerais créer une commande rapide pour faire une recherche sur un mot quelconque à taper et qui deviendrait le critère de recherche dans tout le tableau :

    On tape par exemple TOTO et il faut afficher toutes les lignes pour lesquelles n'importe laquelle des colonnes contient le mot TOTO.

    J'ai réussi avec la commande ci-dessous sauf que cela ne marche QUE pour les cellules de la colonne 5 qui sont égales à la cellule Q1, moi je veux ET contient Q1 ET dans toutes les colonnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Selection.AutoFilter
        Range("A2").Select
        Selection.AutoFilter Field:=5, Criteria1:=Range("Q1"), Operator:=xlAnd
        Range("C100").Select
    Merci de votre aide.
    Leeloo Manhes

  2. #2
    Rédacteur

    Homme Profil pro
    Inscrit en
    août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : août 2005
    Messages : 3 317
    Points : 19 796
    Points
    19 796

    Par défaut

    Bonsoir

    tu peux tester cette macro qui masque les lignes si une des cellules contient la même donnée que la cellule Q1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub MasqueLignesConditionnel()
        Dim Cible As String
        Dim i As Integer
     
        Cible = Range("Q1")
     
        For i = Range("A65536").End(xlUp).Row To 2 Step -1
            On Error Resume Next
            If Application.WorksheetFunction.Match(Cible, Rows(i), 0) = 0 Then _
                Rows(i).Hidden = True
            On Error GoTo 0
        Next i
     
    End Sub


    Et pour réafficher toutes les lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub ReafficheToutesLesLignes()
        Rows.Hidden = False
    End Sub


    michel

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : avril 2007
    Messages : 3
    Points : 2
    Points
    2

    Par défaut Suite

    Merci Michel mais ce n'est pas tout à fait cela que je souhaitais.
    Ta macro recherche seulement les cellules = à Q1 alors que moi je veux faire la recherche sur les cellules qui CONTIENNENT Q1.
    De plus, cela est très long.

    Leeloo Manhès

  4. #4
    Rédacteur

    Homme Profil pro
    Inscrit en
    août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : août 2005
    Messages : 3 317
    Points : 19 796
    Points
    19 796

    Par défaut

    bonsoir

    pour faire une recherche sur les cellules qui "contiennent", remplace


    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Cible = "*" & Range("Q1") & "*"

    effectivement c'est long ... ;o)


    michel

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : avril 2007
    Messages : 3
    Points : 2
    Points
    2

    Par défaut Euréka

    En fait, j'ai trouvé un autre moyen mais grâce à ton information sur "contient" cela fonctionne très bien:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Recherche()
    '
        Selection.AutoFilter
        Range("C1").Select
        Selection.AutoFilter Field:=3, Criteria1:="*" & Range("Q1") & "*", Operator:=xlAnd
    End Sub
    Merci pour tout
    Leeloo Manhès

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 31/01/2010, 10h58
  2. Réponses: 7
    Dernier message: 18/11/2007, 11h38
  3. macro pour remplire une liste dans une même cellule
    Par fabiend83 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/07/2006, 09h32
  4. je ne retrouve plus le lien pour lancer une recherche sur le forum
    Par harlock59 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 19/04/2006, 12h44
  5. Réponses: 5
    Dernier message: 09/09/2005, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo