Combobox deux niveaux avec valeur et libellé

gueval

XLDnaute Junior
Bonjour à tous,
Petit rappel, je ne suis pas très doué avec les macro.

Voilà, ce que j'essaie de faire c'est deux combobox en cascade sur une feuille excel car je ne veux pas utiliser de formulaire
La première réupère la valeur du pays et la 2ème la valeur du département ou région, après des recherches sur le net j'ai essayé d'adapter la macro de l'exellent boisgontierjacques en vain, car la macro modèle est sur trois éléments. (Famille, sous famille et code). Ce premier essai s'appuie sur l'onglet base

En réalité ce que souhaiterai vraiment c'est dans ma première combobox apparaisse la valeur et le libellé mais que seule la valeur soit récupéré dans la combobox1 idem pour la combobox 2. les listes sont sur l'onglet BaseRéelle

Je joint le fichier avec ce que j'ai fait, si vous pouvez m'aider d'avance merci
gueval
 

Pièces jointes

  • Combo_Casc_Pays.xlsm
    100.5 KB · Affichages: 25
  • Combo_Casc_Pays.xlsm
    100.5 KB · Affichages: 32
  • Combo_Casc_Pays.xlsm
    100.5 KB · Affichages: 28

Paritec

XLDnaute Barbatruc
Re : Combobox deux niveaux avec valeur et libellé

Bonjour Gueval le forum
pas sur de savoir ce que tu veux d'autant que tu dois avoir mal aux doigts tu n'as pas pu taper ta demande dans le fichier !!! ni mettre d'explications
ton fichier en retour regarde et redis moi
a+
Papou:)
 

Pièces jointes

  • Gueval V1.xlsm
    100.9 KB · Affichages: 26

Paritec

XLDnaute Barbatruc
Re : Combobox deux niveaux avec valeur et libellé

Bonjour Gueval le forum
pas sur de savoir ce que tu veux d'autant que tu dois avoir mal aux doigts tu n'as pas pu taper ta demande dans le fichier !!! ni mettre d'explications
ton fichier en retour regarde et redis moi, j'ai modifié pour charger à l'ouverture du fichier les combos
a+
Papou:)
 

Pièces jointes

  • Gueval V2.xlsm
    102.7 KB · Affichages: 26
  • Gueval V2.xlsm
    102.7 KB · Affichages: 29
  • Gueval V2.xlsm
    102.7 KB · Affichages: 26

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Combobox deux niveaux avec valeur et libellé

Bonjour,

Code:
Dim dico
Private Sub ComboBox1_DropButtonClick()
  Set f = Sheets("base")
  Set dico = CreateObject("Scripting.Dictionary")
  For Each c In f.Range("a3:a" & f.[a65000].End(xlUp).Row)
    dico(c.Value) = IIf(dico.exists(c.Value), dico(c.Value) & "*" & c.Offset(, 1), c.Offset(, 1))
  Next c
  Me.ComboBox1.List = dico.keys
 End Sub

Private Sub ComboBox2_DropButtonClick()
  Me.ComboBox2.List = Split(dico(Me.ComboBox1.Value), "*")
End Sub

JB
 

Pièces jointes

  • Gueval V2.xlsm
    101 KB · Affichages: 27
  • Gueval V2.xlsm
    101 KB · Affichages: 25
  • Gueval V2.xlsm
    101 KB · Affichages: 28

gueval

XLDnaute Junior
Re : Combobox deux niveaux avec valeur et libellé

Bonjour Paritec et le forum
En effet je suis en dessous de tout, je renvois le fichier avec un pas à pas détaillé dans l'onglet Combobox.

Bonjour boisgontierjacques
merci pour la solution, mais est-il possible d'avoir aussi le libellé des valeurs. Avec le nouveau fichier ma demandeest je pense plus clair.

Merci d'avance
 

Pièces jointes

  • Combo_Casc_Pays.xlsm
    103.7 KB · Affichages: 25
  • Combo_Casc_Pays.xlsm
    103.7 KB · Affichages: 27
  • Combo_Casc_Pays.xlsm
    103.7 KB · Affichages: 32

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Combobox deux niveaux avec valeur et libellé

Code:
Dim f
Private Sub ComboBox1_DropButtonClick()
  Set f = Sheets("BaseRéelle")
  Set dico = CreateObject("Scripting.Dictionary")
  Dim a()
  n = 1
  For Each c In f.Range("A3:A" & f.[A65000].End(xlUp).Row)
     If Not dico.exists(c.Value) Then
       ReDim Preserve a(1 To 2, 1 To n)
       a(1, n) = c.Value
       a(2, n) = c.Offset(0, 1).Value
       dico(c.Value) = ""
       n = n + 1
     End If
  Next c
  Me.ComboBox1.List = Application.Transpose(a)
End Sub

Private Sub ComboBox1_Click()
  Me.ComboBox2.Clear
  i = 0
  For Each c In f.Range("A3:A" & f.[A65000].End(xlUp).Row)
     If c.Value = Me.ComboBox1 Then
       Me.ComboBox2.AddItem c.Offset(, 2).Value
       Me.ComboBox2.List(i, 1) = c.Offset(, 3).Value
       i = i + 1
     End If
  Next c
End Sub

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormCombo_Casc_2niv.xls

JB
 

Pièces jointes

  • Combo_Casc_Pays.xlsm
    104.9 KB · Affichages: 32
  • Combo_Casc_Pays.xlsm
    104.9 KB · Affichages: 32
  • Combo_Casc_Pays.xlsm
    104.9 KB · Affichages: 35
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Combobox deux niveaux avec valeur et libellé

Re Gueval et tous
Voilà des explications qu'elles sont bien bonnes !!!!
avec ce fichier là du premier coup, tu aurais eu ta réponse la première fois!!
mais tu as eu la réponse par JB au post 6 alors bonne soirée à vous tous.
a+
Papou:)
 

Discussions similaires

Statistiques des forums

Discussions
312 249
Messages
2 086 598
Membres
103 253
dernier inscrit
alscanv974