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 :

Liste combobox2 en fonction de la sélection de combobox1


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Mars 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Mars 2019
    Messages : 1
    Par défaut Liste combobox2 en fonction de la sélection de combobox1
    Bonjour,

    Je souhaite pouvoir, lorsque je selectionne 1 combobox, avoir une liste reduite dans ma combobox 2 qui ne va chercher qu'une selection dans ma base de données en fonction du choix de la Cbx1.

    Ma base est contruite comme suit:
    colonne B : liste des fournisseurs
    colonne C: liste des articles fournis par les fournisseurs
    colonne A: liste sans doublon des fournisseur pour "alimenter" ma Cbx 1.
    Pour cette liste reduite j'utilise la formule suivante:

    Le soucis est que lorsque je fais une selelction de fournisseur dans ma Cbx1, je ne vois que le premier article lié à ce fournisseur dans ma Cbx2 au lieu d'avoir la lsite des tous les articles fournis par le fournisseur selectionné. Bref je tourne en rond sans trouver de solution. De l'aide s'il vous plait...!!

    Voici le fichier simplifié qui résume mon soucis...
    Classeur1.xlsm

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonsoir

    Enlève la source de données de ta 1ère combobox et mets ce code dans le module de ton userform
    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
    Private Sub UserForm_Initialize()
    Dim MonDico As Object
    Dim c As Range
     
    Set MonDico = CreateObject("Scripting.Dictionary")
    With Feuil1
        For Each c In .Range("B2:B" & .Cells(.Rows.Count, 2).End(xlUp).Row)
            MonDico(c.Value) = c.Value
        Next c
    End With
    Me.ComboBox1.List = MonDico.items
    Set MonDico = Nothing
    End Sub
     
     
    Private Sub ComboBox1_Change()
    Dim MonDico As Object
    Dim c As Range
     
    If Me.ComboBox1.ListIndex > -1 Then
        Set MonDico = CreateObject("Scripting.Dictionary")
        With Feuil1
            For Each c In .Range("C2:C" & .Cells(.Rows.Count, 2).End(xlUp).Row)
                If c.Offset(, -1) = Me.ComboBox1.Value Then MonDico(c.Value) = c.Value
            Next c
        End With
        With Me.ComboBox2
            .List = MonDico.items
            .ListIndex = -1
        End With
        Set MonDico = Nothing
    End If
    End Sub

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/05/2014, 17h23
  2. Réponses: 1
    Dernier message: 29/07/2012, 12h22
  3. [AC-2007] Attribuer une valeur en fonction d'une sélection dans une liste
    Par Gregk84 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/07/2012, 17h31
  4. Réponses: 11
    Dernier message: 23/04/2012, 09h55
  5. Réponses: 2
    Dernier message: 09/06/2009, 09h28

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