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 :

créer une liste défilante avec filtre permettant de récupérer des noms de client sur une colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 61
    Par défaut créer une liste défilante avec filtre permettant de récupérer des noms de client sur une colonne
    Bonjour,
    Donc voilà travaillant sur un projet en vba excel , je recherche comment faire pour pouvoir récupérer des noms de clients à partir d'une feuille , tout cela avec un UserForm!
    J'ai créer un UserForm qui me demande de renseigner un nom de client mais étant donnée qu'il y en à 500 si c'est pas plus , je souhaiterai créer un filtre qui me permettrais par exemple si je saisi les trois premières lettres du nom du client ,d'avoir tout les clients commençons par ces trois premières lettres et ensuite pouvoir faire le choix du client voulue via une liste défilante.

    Une fois le client saisie , il faudrait que je puisse avoir dans une liste défilante toutes les machines que se client à en sa possession.
    En sachant que chaque client à un ID_adresse différent mais que les machines chez un même client ont un ID_adresse identique.

    J'espère m'être bien exprimer et qu'on pourra me venir en aide

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    Il faudrait que tu détailles plus, comment est organisé ton fichier : lignes, colonnes et peut-être envoyer une image de celui-ci et de l'USF.


    Bon courage
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    le mieux est de procéder par étapes :

    1 - lire Les règles :http://club.developpez.com/regles/

    => Une question pas message, ça facilite les recherches, beaucoup de réponses étant déjà dans le forum

    2 - une partie de ta réponse se trouve dans le comportement de l’auto-complétion native des combobox, à tester.

    vois ce fil si correspond : http://www.developpez.net/forums/d10...utocompletion/
    c'est du VB6, mais proche VBA

    une fois ton 1er souci résolu, tu enchaînes sur les questions suivantes dans de nouveaux messages.

    vois ceci sinon aussi : http://silkyroad.developpez.com/VBA/ControlesUserForm/



    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 61
    Par défaut
    Bonjour,

    Oui désolé j'ai un peux tout mélangé

    Donc pour répondre à ta question casefayere , mon fichier est organisé de la façon suivante:
    -Les noms des clients sont sur la colonne B et ils se répartissent sur 5807 lignes!

    Merci Ormonth

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    En sachant que chaque client à un ID_adresse différent mais que les machines chez un même client ont un ID_adresse identique.
    et
    Donc pour répondre à ta question casefayere , mon fichier est organisé de la façon suivante:
    -Les noms des clients sont sur la colonne B et ils se répartissent sur 5807 lignes!
    et le reste !, les ID_adresse client et machines.......
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 61
    Par défaut


    Je commence par la feuille "Table adresse" ou je récupère le nom des clients en colonne B et leur ID_adresse en colonne A.

    Ensuite je passe à la feuille "Table equipement adresse" ou via l'ID_adresse qui se trouve en colonne C que j'ai pu récupérer dans la feuille précédente je peux récupérer l'ID_equipement qui lui est en colonne B.

    Enfin dans la feuille "Table equipement actif" via l'ID_ equipement qui se trouve en colonne A récupérer dans la feuille précédente , je dois récupérer le Nom_equipement qui se trouve en colonne C.


  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,

    avançons petit à petit
    je souhaiterai créer un filtre qui me permettrais par exemple si je saisi les trois premières lettres du nom du client ,d'avoir tout les clients commençons par ces trois premières lettres
    Un USF avec 1 ListBox nommée "ltClients" (avec 2 colonnes) et 1 TextBox nommé "tbRecherche"

    1 feuille nommée "Table adresse" avec un ID en col A (à partir de A2) et les noms correspondants en col B
    déclaration des variables qui serviront sur tout l'USF, donc en haut du code de l'USF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Explicit
    Dim Clt, derlg As Long, x As Long, ch As String
    Code à l'ouverture de l'USF pour remplir ta listbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Activate()
    lbClients.BoundColumn = 2
    With Sheets("Table adresse")
      derlg = .Range("A" & .Rows.Count).End(xlUp).Row
      Clt = .Range("A2:B" & derlg)
      lbClients.List = Clt
    End With
    End Sub
    et enfin, code pour la recherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub tbRecherche_Change()
    lbClients.Clear
    ch = UCase(tbRecherche)
    For x = 1 To UBound(Clt, 1)
      If UCase(Clt(x, 2)) Like ch & "*" Then
        With lbClients
          .AddItem Clt(x, 1)
          .Column(1, .ListCount - 1) = Clt(x, 2)
        End With
      End If
    Next x
    End Sub
    testes déjà ça

    on verra après,

    Bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 61
    Par défaut
    Bonjour,

    Après avoir essayé ce que tu ma donné sa marche très bien ,merci !!!

    Lorsque je rentre le début du nom du client la TextBox il y a un filtre qui se crée au niveau de la ListBox et qui me donne l'identifiant recherché.

    Serait ce possible de créer un filtre par rapport au nom du client?
    C'est à dire si je rentre les trois premières lettres du client par exemple , j'aurai une liste défilante qui m'affiche tout les noms de clients commençons par ces lettres.

  9. #9
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    Dans la listbox que je te propose, il est prévu d'avoir le nom du client étant donné qu'elle a 2 colonnes dans les propriétés (je l'ai précisé) et le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lbClients.BoundColumn = 2
    est sur 2 donc en référence au nom du client, donnes une largeur moindre à ta 1ère colonne avec les ID et élargis ta listbox si tu ne vois pas apparaitre les noms.

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 61
    Par défaut
    Effectivement , merci

    On peut passer à la suite

  11. #11
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    re,

    Une fois le client saisi , il faudrait que je puisse avoir dans une liste défilante toutes les machines que ce client a en sa possession.
    En sachant que chaque client à un ID_adresse différent mais que les machines chez un même client ont un ID_adresse identique.
    Je veux bien passer à la suite quand tu m'auras dit coment est organisé ton fichier, surtout pour les machines, je t'envoie un fichier bidon, ajoutes des données bidon en correspondance pour tes machines, j'y verrai peut-être plus clair
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/01/2009, 18h01
  2. Tri sur une list(of) avec classe perso
    Par Faladin dans le forum VB.NET
    Réponses: 9
    Dernier message: 04/08/2008, 20h13
  3. Réponses: 6
    Dernier message: 20/04/2007, 11h38
  4. Récupérer des noms de fichiers dans une table ?
    Par florus dans le forum Access
    Réponses: 5
    Dernier message: 25/03/2006, 17h34

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