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 :

Lier le remplissage d'une Combobox au choix fait dans une listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Responsables Services administratifs
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Responsables Services administratifs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Par défaut Lier le remplissage d'une Combobox au choix fait dans une listbox
    Bonjour,

    Lecteur assidu du forum et des tutos, j'ai toujours trouvé LA solution à mes problèmes.

    Mais cette fois je n'ai malheureusement pas réussi à trouver cette solution.

    J'expose la problématique :

    Une userform1 avec une listbox1, cette listbox1 est complétée à l'ouverture de la Userform1 dans Userform1_Initialize(), donc tout se passe bien!

    La listbox1 est une liste de services : service 01, service 02, service 03 ...

    Chacun de ces services comportent une liste d'agents (le nombre d'agents varie selon le service).

    A coté de la listbox1 une combobox1 pour le moment VIDE. La combobox1 n'est donc pas initialisée à l'ouverture de la Userform1 puisque je ne connais pas encore le service qui sera choisi par l'utilisateur.

    Au click sur un des services dans la listbox1 je veux afficher dans la combobox la liste des agents du service sélectionné.

    Je récupère bien l'index de la listbox1 et connais bien le service choisi mais ensuite je ne vois pas comment enregistrer la liste des agents dans la combobox1 après l’événement click dans la listbox1.

    Feuille où se trouve la liste des services/liste des agents :

    Colonne A Colonne B
    Service 01 Service 02
    agent01 agent01
    agent02 agent02
    agent03

    Merci si vous pouvez m'orienter vers une solution

    Cigaremoods

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Bonjour

    http://boisgontierjacques.free.fr/pa...es_cascade.htm

    Le lien vers un travail réalisé par Jacques Boisgontier .

    Je pense que ceci peut t'aider.

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    utilisant Excel 2010, je te conseille vivement de transformer ton tableau d'équipe en tableau structuré (menu INSERTION >> TABLEAU), qui est l'objet ListObject en VBA

    ainsi, en quelques lignes de codes, tu peux récupérer :

    - la liste des équipes pour remplir ListBox
    - la liste des agents de l'équipe pour remplir Combobox à chaque changement de choix dans ListBox

    Soit Feuil1, la feuille qui porte ton tableau structuré

    remplissage de ListBox avec les équipes (qui sont les en-têtes de ton tableau structuré)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_Initialize()
                                                    ' la feuille     ' le tableau    ' les titres
        Me.ListBox1.List = Application.Transpose(Worksheets("Feuil1").ListObjects(1).HeaderRowRange.Value)
    End Sub
    remplissage de Combobox lors d'un choix dans ListBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ListBox1_Click()
        With Me
            .ComboBox1.Clear
                              ' la feuille         ' le tableau   ' la colonne  ' l'équipe     ' les agents
            .ComboBox1.List = Worksheets("Feuil1").ListObjects(1).ListColumns(.ListBox1.Value).DataBodyRange.Value
        End With
    End Sub
    Simple et concis

  4. #4
    Candidat au Club
    Homme Profil pro
    Responsables Services administratifs
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Responsables Services administratifs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Par défaut
    Bonjour,

    Avec le lien d'a_diard et l'exemple de joe.levrai je suis arrivé au résultat escompté.

    Un grand merci pour votre aide et surement à une prochaine fois

    Bonne journée

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonsoir,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim f
    Private Sub UserForm_Initialize()
      Set f = Sheets("bd")
      Me.ListBox1.List = Application.Transpose(Range(f.[a1], f.[iv1].End(xlToLeft)))
    End Sub
     
    Private Sub ListBox1_Click()
      col = Me.ListBox1.ListIndex + 1
      Me.ListBox2.List = f.Cells(2, 1).Offset(, col - 1).Resize(Application.CountA(f.Columns(col))).Value
    End Sub
     
    Boisgontier
    Fichiers attachés Fichiers attachés

  6. #6
    Candidat au Club
    Homme Profil pro
    Responsables Services administratifs
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Responsables Services administratifs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Par défaut
    Bonjour,

    Merci, beaucoup plus sophistiqué que mon code.

    Je vois que j'ai encore pas mal de chemin à faire pour synthétiser et optimiser mes programmes.

    Cigaremmoods

Discussions similaires

  1. [WD20] Ouvrir une Fenêtre en fonction du choix fait dans une ComboBox
    Par ARNAUD ZIRIPE dans le forum WinDev
    Réponses: 4
    Dernier message: 31/12/2017, 14h39
  2. Réponses: 6
    Dernier message: 26/02/2017, 22h15
  3. Réponses: 27
    Dernier message: 12/04/2007, 10h23
  4. recuperer la valeur d'une combobox pour la comparer dans une requête
    Par Rukawa dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/06/2006, 11h22
  5. Réponses: 3
    Dernier message: 08/10/2005, 00h02

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