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 :

VBA-E Comment réaliser une recherche avec plusieurs critères ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut VBA-E Comment réaliser une recherche avec plusieurs critères ?
    Bonsoir,

    je cherche a savoir si une fonction existe pour réaliser un recherche multicritère sur un tableau excel avec vba.

    je galère trop, toute idée est bienvenida

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    "Sort" fait cette sorte de chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Worksheets("Feuil1").Range("A1:C20").Sort _
    	Key1:=Worksheets("Feuil1").Range("A1"), _
    	Key2:=Worksheets("Feuil1").Range("B1")
    Tu ne peux utiliser que trois critères. Ça te va ?
    A+

  3. #3
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut Merci je vais tester ça et je te tiens au courant
    Merci pour l'info,
    je vais tester ça et je te tien au courant.
    a+

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Désolé mais je t'ai dit une bêtise. Mon code effectue un TRI, pas une recherche ? J'ai encore lu trop vite
    Pour une recherche multicritères, tu dois effectuer une recherche sur le premier critère, puis vérifier le second, puis vérifier le troisième.
    Mais je crois avoir vu passer un code de bbil dans lequel il vérifie l'existence de plusieurs données dans une ligne. Sans garantie aucune. Bref, je n'ai pas le code non plus qu'une idée pour faire ça par une simple ligne de commande?
    Je suivrai ton post car un réponse serait intéressante à connaître.
    Pour ne pas te laisser sans rien et parce que je culpabilise :
    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
    Sub RechercheMulticritères()
    Dim Critère1, Critère2, Critère3, i As Integer, DernièreLigne As Double
    Dim ok As Boolean
    Dim NoColCritère1, NoColCritère2, NoColCritère3 'juste pour l'exemple (tu peux utiliser l'offset
        Critère1 = "Coucou"
        Critère2 = " c'est"
        Critère3 = " moi !"
        NoColCritère1 = 1
        NoColCritère2 = 2
        NoColCritère3 = 3
        DernièreLigne = 100 ' dernière ligne de ta plage de données (à définir)
        For Each LaLigne In ActiveSheet.Range(Cells(1, NoColCritère1), Cells(DernièreLigne, NoColCritère1))
            i = i + 1
            ok = Worksheets("Feuil1").Cells(i, NoColCritère1) = Critère1
            ok = ok And Worksheets("Feuil1").Cells(i, NoColCritère2) = Critère2
            ok = ok And Worksheets("Feuil1").Cells(i, NoColCritère3) = Critère3
            If ok Then
                'Tu en fais ce que tu veux, i est le N° de ligne
            End If
            ok = False
        Next
    End Sub
    Pas testé, je devrais être parti, ça y est, je suis en retard.
    Bonne journée

  5. #5
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut Ok merci quand meme
    De toute façon j'ai aussi besoin du tri sur trois arguments donc merci quand meme.

    A+

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Le dernier code que je t'ai passé fait une recherche sur 3 critères
    A+

  7. #7
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Merci j'ai pas pu encore tester car j'ai une erreur avec un multipage mais ça ma l'air pas mal.

    Mais peut etre ça le fera pas bien car j'ai plus de 2500lignes
    donc le temps que ça compte yen a pour un pti moment je pense en plus c'est pour mettre sur une vieille machine.

    J'aurai espéré que cela puisse se faire avec Find mais apparemment ça ne se fait pas.

    Merci je le teste des que je resoud l'autre problème
    a+

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Chuis nul ! Tu as une autre solution (oubliée... ) plus rapide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:=">" & LaDateInf, _
           Operator:=xlAnd, Criteria2:="<" & LaDateSup
    Mais au lieu de > "=" & TonCritère1 et à la place de <, tu mets "=" & TonCritère2, etc.
    Bon, il vaut mieux que je te laisse avec des gens moins pressés que moi

  9. #9
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Merci des que je regle mon gros bug de multipage je teste tout ça vraiment merci je te tien au courant tinquiete.

    a+

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    c'est un peu bestial mais ça peut dépanner

    =si(and(listedescritères);vrai;faux) dans une colonne puis tri
    Elle est pas belle la vie ?

  11. #11
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Salut
    Merci pour vos réponses je suis débordé cette fin de semaine ya plein de truc qui me son tombé dessus en meme temp cet aprem alors je travaille dessus ce weekend et puis je vous tiens au courant.

    Merci encore a tous et bon weekend tout le monde les amis

  12. #12
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut Mauvaise nouvelle
    Salut a tous,
    bon je vous raconte pas la galère mais en bref mon projet de gestion de litiges est annulé donc voila je poste résolu car j'ai largement confiance à ceux qui ont écrit le code de cette recherche multicritère et je leur souhaite bonne continuation.

    Merci a tous encore


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

Discussions similaires

  1. [PDO] Comment faire une recherche sur plusieurs critères ?
    Par geeka dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/05/2015, 10h19
  2. Réponses: 4
    Dernier message: 15/04/2011, 17h13
  3. Réponses: 1
    Dernier message: 18/09/2010, 02h40
  4. Réponses: 69
    Dernier message: 15/06/2006, 11h42
  5. [ADO.NET]Comment réaliser une relation sur plusieurs champs?
    Par kleomas dans le forum Accès aux données
    Réponses: 3
    Dernier message: 13/03/2006, 12h40

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