IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Moteur de recherche sous excel [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut Moteur de recherche sous excel
    Bonjour,

    J'ai réussi à créer (en faisant un copier coller je vous rassure) une code me permettant de faire une recherche d'information dans un tableau sous Excel.

    Je m'explique, j'ai 4 colonnes dans un tableau et je cherchais à taper dans une celule en dehors du tableau une valeur et si elle se trouvait dans le tableau alors le tableau affichait uniquement la ligne de cette valeur.
    Tout fonctionne bien avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Private Sub Worksheet_Change(ByVal Target As Range)
        'Commande
        'en a6 la valeur rechercher dans la colonne a
        'en tapant vide le tableau doit être filtrer sur les champs vide
        If Not Application.Intersect(Target, Range("a6")) Is Nothing Then
            If Target.Count > 1 Then Exit Sub
            If Range("a6") = "vide" Then
                    Range("a6").Value = "="
                    Range("a8:af15000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
                    Range("a5:a6"), Unique:=False
                 Else
                    Range("a8:af15000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
                    Range("a5:a6"), Unique:=False
                End If
        End If
     
        'Date
        If Not Application.Intersect(Target, Range("b6")) Is Nothing Then
            If Target.Count > 1 Then Exit Sub
            If Range("b6") = "vide" Then
                    Range("b6").Value = "="
                    Range("a8:af15000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
                    Range("b5:b6"), Unique:=False
                 Else
                    Range("a8:af15000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
                    Range("b5:b6"), Unique:=False
                End If
        End If
     
        'Fournisseur
        If Not Application.Intersect(Target, Range("c6")) Is Nothing Then
            If Target.Count > 1 Then Exit Sub
                If Range("c6") = "vide" Then
                    Range("c6").Value = "="
                    Range("a8:af15000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
                    Range("c5:c6"), Unique:=False
                 Else
                    Range("a8:af15000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
                    Range("c5:c6"), Unique:=False
                End If
        End If
    End Sub

    Mon problème est le suivant :
    le code ne cumule pas 2 filtres je m'explique si je mets "toto" en a6 alors il filtre bien sur toto cependant si je mets ensuite "rue de la frais" en b6 il filtre uniquement sur "rue de la fraise" et il oublie le premier filtre de la colonne a.

    Suis je bien clair ?

    Je l'espère

    En tout cas merci pour votre aide

    Nini

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut
    c'est bon

    Voici le code utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Application.Intersect(Target, Range("A6:R6")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target = "vide" Then
          Target.Value = "="
        End If
        Range("a8:af15000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
                 Range("a5:R6"), Unique:=False
      End If
    End Sub

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

Discussions similaires

  1. Moteur de recherche sous excel
    Par Phoenix311 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/10/2013, 18h48
  2. Fonction Moteur de Recherche sous Excel
    Par Frédéric_V dans le forum Excel
    Réponses: 1
    Dernier message: 25/10/2012, 07h36
  3. Réponses: 2
    Dernier message: 22/04/2008, 10h56
  4. Moteur de recherche sous access
    Par nawal59 dans le forum Access
    Réponses: 3
    Dernier message: 08/06/2006, 19h56
  5. [MERCI][C#] Un moteur de recherche sous forme ....
    Par joshua.shamael dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/06/2005, 15h07

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