Alimenter Combobox Multicolonne avec 2 Listes différentes

Bonjour à tous,

Je souhaite alimenter un Combobox à 2 colonnes grace à 2 "Scripting.Dictionnary" préalablement chargé. Le premier dans la premiere colonne et le 2e dans la deuxième

Que doit-je modifier dans les 2 avant dernière lignes du code pour y parvenir ?

Merci d'avance pour votre aide

Private Sub Combobox2_Change()
  Dim ImageIndisponible As String
  Dim i As Integer, j As Integer
  Dim strTemp As String

  Set MonDico = CreateObject("Scripting.Dictionary")
  Set MonDico2 = CreateObject("Scripting.Dictionary")
  For Each c In f.Range("A2:B" & f.Range("A" & Rows.Count).End(xlUp).Row)
     If Me.ComboBox1 = c And Me.ComboBox2 = c.Offset(, 1) Then
     MonDico(c.Offset(, 2).Value) = ""
     MonDico2(c.Offset(, 21).Value) = ""
     End If
  Next c
  Me.ComboBox3.List = MonDico1.keys 'je souhaite ici le bon code pour charger dans la premiere colonne du combobox
  Me.ComboBox3.List = MonDico2.keys 'je souhaite ici le bon code pour charger dans la deuxième colonne du combobox
  Me.ComboBox3 = ""

Ou quel serait une autre solution de code pour atteindre le même résultat ? car je ne suis pas plus attaché que ça à cette méthode de 2 Scripting.Dictionnary ...

Bonjour,

Tu peux essayer ça:

  With UserForm1.ComboBox1
    .AddItem "Colonne1"
    .List(.ListCount - 1, 1) = "Colonne2"
    .List(.ListCount - 1, 2) = "Colonne3"
  End With

A mettre dans le UserForm_Initialize()

Merci ArnaudF86 pour ta réponse.

Le problème avec AddItem, c'est que c'est un rajout en effectuant une boucle. Hors avec le système de "Scripting.Dictionnary" la liste complete est déjà constitué et on la charge en une fois dans le Combobox. C'est une liste en mémoire tampon en fait. Je cherche juste (si c'est possible en VBA) d'indiquer le chargement de cette liste en précisant la colonne du Combobox ...

J'ai cependant essayé avec la fonction AddItem et cela fonctionne donc je valide

  For Each c In f.Range("A2:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
     If Me.ComboBox1 = c And Me.ComboBox2 = c.Offset(, 1) Then
    Me.ComboBox3.AddItem (c.Offset(, 2).Value)                                      'premiere colonne immatriculation
    Me.ComboBox3.List(Me.ComboBox3.ListCount - 1, 1) = (c.Offset(, 21).Value)        'deuxième colonne désignation
     End If
  Next c

  Me.ComboBox3 = ""
Rechercher des sujets similaires à "alimenter combobox multicolonne listes differentes"