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 :

Bouton recherche VBA [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Assistant reporting
    Inscrit en
    Mai 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant reporting
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2014
    Messages : 22
    Par défaut Bouton recherche VBA
    Salut à vous,

    C'est la première fois que j'écris

    Je début en vba donc pardonnez-moi

    Ce que je voudrais faire:

    - J'ai une base des données où rechercher une information (fichier ci-joint)

    - j'ai crée un bouton de recherche où je souhaite faire des recherches dans ma BDD selon plusieurs critères


    J'ai réussi à faire la recherche par un critère mais pas pour les 3 ensemble (code client, nom et responsable)


    Merci beaucoup à vous tous
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il semble que dans ce cas la programmation n'apporte rien. L'utilisation du filtre élaboré répond largement à la question. On peut aisément appliquer un critère dans chaque colonne.
    Par ailleurs, ma version d'Excel ne m'a pas permis de lire ton code. Il faudrait un enregistrement en .xlsm et ensuite retirer le m pour que le forum l'accepte.
    Peut-être à plus tard pour plus ample informé.

    Cordialement.
    Jean-Claude

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Comme le dit jcDSoft, tu peux utiliser un filtre élaboré mais si tu veux utiliser VBA pour t'initié, regarde du coté d'AutoFilter avec un filtrage successif. Un petit exemple :
    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
     
    Sub Filtrage()
     
        Dim Plage As Range
     
        With ActiveSheet
     
            'de A1 à Fx...
            Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 6).End(xlUp))
     
        End With
     
        'filtrages successifs
        Plage.AutoFilter 1, "code_client" 'sur colonne 1 de la plage
        Plage.AutoFilter 2, "Nom" 'sur colonne 2
        Plage.AutoFilter 3, "Responsable" 'sur colonne 3
     
        'le reste de ton code...
     
        'sans argument, suppression du filtre
        Plage.AutoFilter
     
    End Sub
    Hervé.

  4. #4
    Membre averti
    Femme Profil pro
    Assistant reporting
    Inscrit en
    Mai 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant reporting
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2014
    Messages : 22
    Par défaut
    Bonjour,

    Merci beaucoup pour vos réponses, cependant je n'arrive pas à faire marcher ta macro Theze: quant tu écris le reste de ton code je ne sais pas comment modifier ma macro par rapport à la tienne.

    Ma macro est la suivante:

    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
    'récupération de la valeur de la textbox
     
    codeimplant = Worksheets("Accueil").TextBox1.Text
     
    'verification de la valeur du code implant
     
    If codeimplant = "" Then codeimplant = "<>0"
     
    If (codeimplant = "<>0") Then
     
    MsgBox "Merci de saisir un code", vbExclamation, "Liste des sites"
     
    Else
    Sheets("bdd").Select
     
    ActiveWindow.DisplayWorkbookTabs = True
     
    With Worksheets("BDD")
     
        If .FilterMode = True Then .ShowAllData
     
    End With
     
        Selection.AutoFilter Field:=4, Criteria1:=codeimplant, _
                Operator:=xlAnd
     
        'sans argument, suppression du filtre
        Plage.AutoFilter
     
    End Sub
    Merci encore à vous

    voila mon tableau ci-joint

    en fait je n'arrive pas à "retirer le m pour que le forum accepte"

    Désolé!! Merci encore à vous
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Juste un petit exemple par rapport à ton fichier. Dans un premier temps, le filtrage se fait sur la colonne B (les prénoms) et ensuite, le filtrage se fait sur la colonne C. Dans l'exemple, il ne restera que les "Véronique" ayant en colonne C "R13". Tu colle le code dans ton module, tu place le curseur dans le code puis F5, tu n'as plus qu'à regarder le résultat en feuille BDD :
    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
     
    Sub Test()
     
        Dim Plage As Range
        Dim codeimplant As String
     
        With Worksheets("BDD")
     
            'de A1 à Fx...
            Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 3).End(xlUp))
     
        End With
     
        With Plage
     
            'supprime un éventuel filtre
            .AutoFilter
     
            'filtre sur la colonne B puis ensuite sur la colonne C
            .AutoFilter 2, "Véronique"
            .AutoFilter 3, "R13"
     
        End With
     
    End Sub
    Hervé.

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour


    Citation Envoyé par Sempre5 Voir le message
    en fait je n'arrive pas à "retirer le m pour que le forum accepte"

    Désolé!! Merci encore à vous
    "Comprimes-le" en zip avant de l'envoyer. Cela va faire pareil.

    Ou bien tu fais un clic-droit sur le fichier dans l'Explorateur de Windows et tu choisis Renommer.

  7. #7
    Membre averti
    Femme Profil pro
    Assistant reporting
    Inscrit en
    Mai 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant reporting
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2014
    Messages : 22
    Par défaut Merci!
    Merci beaucoup à vous!


    C'est super de pouvoir être accompagné dans la découverte du VBA

    Merci encore!

    A bientôt

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Un petit exemple basé sur le filtre élaboré.
    N'hésite pas à lire l'aide Excel concernant le filtre élaboré et la façon de l'utiliser.
    Note que les critères saisis sur la même ligne sont lus comme des ET alors que ceux sur des lignes différentes sont des OU.
    Fais autant d'essais que nécessaire.
    Reviens sur le forum si vraiment quelque chose bloque.

    Cordialement.
    Jean-Claude

    Forum.xls

    Pense à rajouter le m de l'extension.

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

Discussions similaires

  1. Copie de valeur sous VBA avec un bouton recherche
    Par vefa12 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/08/2013, 16h01
  2. [XL-2007] Base de données et vba bouton rechercher
    Par Marc31 dans le forum Excel
    Réponses: 2
    Dernier message: 17/02/2012, 13h54
  3. VBA - Créé bouton Rechercher a Partir de Listebox
    Par swizerman dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/12/2011, 18h17
  4. aide sur spinbutton et bouton recherche VBA
    Par jonathan00243 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/05/2011, 17h08
  5. [AC-2007] bouton recherche en vba
    Par bernards111 dans le forum IHM
    Réponses: 13
    Dernier message: 05/12/2010, 13h53

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