Création dictionnaire => afficher le résultat avec une liste déroulante

Bonjour,

j'aimerais afficher le résultat du ComboBox dans un TextBox en réalisant un dictionaire avec les valeurs du tableau. (je ne sais pas si je juste clair)

13classeur1.xlsm (15.94 Ko)

Merci

Bonjour,

Pourquoi vouloir utiliser un dictionnaire absolument alors qu'aucune valeur n'est identique

Quel est votre besoin réel ?

A+

Bonjour,

pour éviter de faire des fonctions si du genre :

Si ComboBox1 = 1 alors 
TextBox1 = 2.3
Sinon Si ComboBox1 = 2 alors
Textbox1 = 4
et ect...

Re,

Drôle de notion de l'utilité d'un dictionnaire

Mettez ceci dans votre USF

Option Explicit

Private Sub ComboBox1_Change()
  With Sheets("Feuil1")
    Me.TextBox1.Value = .Cells(3, 1 + CInt(Me.ComboBox1))
  End With
End Sub

Private Sub UserForm_Initialize()
  Dim Col As Long
  For Col = 2 To 11
    Me.ComboBox1.AddItem Sheets("Feuil1").Cells(2, Col)
  Next
End Sub

A+

Désolé d'être différent, c'est ce qui fait notre particularité. Concernant le dictionnaire je voulais mettre en clé (1, 2,....10) et valeur (2.3, 4,.... 0) mais ceci n'est pas utile. Sinon merci pour la solution, je vais l'essayer.

Re,

Ce n'est pas question d'être différent, heureusement que nous le sommes tous.

Mais c'est le soucis de votre compréhension dans l'utilisation d'un "Dictionnaire",
qu'il faudra revoir (si je puis me permettre)

A+

bonjour le fil,

ici le dictionaire n'a pas de valeur ajouté

Private Sub UserForm_Initialize()

     Dim i     As Integer, aA, DBR

     'méthode 1 : additem
     For i = 2 To 11
          ComboBox1.AddItem Sheets("Feuil1").Cells(2, i)
     Next

     'méthode 2 : dictionary
     Dim dico  As Scripting.Dictionary
     Set dico = New Scripting.Dictionary
     aA = Sheets("feuil1").Range("A2").ListObject.Range.Value2     'la plage > matrice
     For i = 2 To UBound(aA, 2)     'boucle ces données
          dico(aA(1, i)) = aA(2, i)     'clé & item
     Next

     MsgBox "Mes Clés " & vbLf & Join(dico.keys, vbLf)
     'ComboBox1.List = dico.keys
     MsgBox "Mes Valeurs " & vbLf & Join(dico.items, vbLf)
     ComboBox1.List = dico.items     'cette liste >>> combobox1

     'méthode 3 :  en une fois
     Set DBR = Sheets("feuil1").Range("A2").ListObject.DataBodyRange
     ComboBox1.List = Application.Transpose(DBR.Offset(, 1).Resize(, DBR.Columns.Count - 1).Value)

End Sub
Rechercher des sujets similaires à "creation dictionnaire afficher resultat liste deroulante"