Combobox1 qui valide la base du combobox2

Résolu/Fermé
edlogy Messages postés 6 Date d'inscription lundi 27 juin 2016 Statut Membre Dernière intervention 29 juin 2016 - 27 juin 2016 à 20:39
edlogy Messages postés 6 Date d'inscription lundi 27 juin 2016 Statut Membre Dernière intervention 29 juin 2016 - 28 juin 2016 à 16:20
Bonjour,

je suis nouveau et j'aurais une question à vous soumettre:

Je souhaite dans un usf avoir deux combobox, la premiere a sa base dans la feuille 1 qui va de A1 à A3 et la combobox2 a trois base de donnée : B1 à B20, C1 à C30 et D1 à D7. et je ne vois pas comment faire. Selon le choix de la combobox 1 la combobox 2 aura une liste differente.

Merci d'avance pour votre ecoute et votre aide.

5 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
27 juin 2016 à 21:54
0
edlogy Messages postés 6 Date d'inscription lundi 27 juin 2016 Statut Membre Dernière intervention 29 juin 2016
27 juin 2016 à 22:04
Top de top merci c'est exactement ça.

Merci cs_Le Pivert.
0
edlogy Messages postés 6 Date d'inscription lundi 27 juin 2016 Statut Membre Dernière intervention 29 juin 2016
28 juin 2016 à 15:06
Petite demande supplémentaire,

mes deux combobox sont dans un userform et travail avec les data de la feuille 2. et du coup lorsque que je met dans UserForm_Initialize() la sequence :
3 Set f = Sheets("data")
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In f.Range("B2:B" & f.[B65000].End(xlUp).Row) ' on explore la colonne de niveau 1
MonDico(c.Value) = "" ' on ajoute l'élément de la famille au dictionnaire
Next c
Me.Famille.List = MonDico.keys

j'ai une erreur 70 ( Permission refuse ).

Avez vous une idée?

Merci encore.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié par cs_Le Pivert le 28/06/2016 à 15:47
Il faut que la feuille se nomme data

Option Explicit
Dim MonDico
Dim f, c
Private Sub UserForm_Initialize()
Set f = Sheets("data")
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In f.Range("B2:B" & f.[B65000].End(xlUp).Row) ' on explore la colonne de niveau 1
MonDico(c.Value) = "" ' on ajoute l'élément de la famille au dictionnaire
Next c
Me.Famille.List = MonDico.keys
End Sub
Private Sub Famille_click()
  Me.SousFamille.Clear
  Set MonDico = CreateObject("Scripting.Dictionary")
  For Each c In f.Range("B2:B" & f.[B65000].End(xlUp).Row)      ' on explore la colonne de niveau 1
     If c = Me.Famille Then MonDico(c.Offset(, 1).Value) = ""   ' si famille alors on ajoute l'élément de la sous-famille au dictionnaire
  Next c
  Me.SousFamille.List = MonDico.keys
End Sub


@+ Le Pivert
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
edlogy Messages postés 6 Date d'inscription lundi 27 juin 2016 Statut Membre Dernière intervention 29 juin 2016
28 juin 2016 à 16:20
merci, j'ai modifier et maintenant cela me dit objet requis:

For Each c In f.Range("B2:B" & f.[B65000].End(xlUp).Row) ' on explore la colonne de niveau 1

Sur cette ligne.

Donc j'ai rajouter au debut :

Set f = Sheets("base")

et hop tu est au top
0