J'ai bien trouvé sur le forum, une procédure pour afficher dans une textbox un texte suivant la sélection dans une combobox avec une seule ligne de code:
Code:
Private Sub ComboBox1_Change()
TextBox1.Text = Feuil1.[B1].Offset(ComboBox1.ListIndex)
End Sub
et renseigner RowSource, mais cette solution ne me convient pas car il faut que les données soient sur la première ligne de la feuille. j'ai fait des tests sans succès.
Je voudrais qu'à (combobox) la valeur "1" corresponde (textbox) "Ami"; à "2" --> "Collègue" et à "3" -->"Famille"
Auriez-vous une autre solution afin que ces valeurs soient dans le code? je pensais à ComboBox1.AddItem, mais vu mon faible niveau en vba je bloque.
Re : Listbox suivant Combobox sans passer par RowSource
Bonjour
Ceci devrait convenir
Code:
Private Sub CommandButton1_Click()
UserForm1.Hide
End Sub
Private Sub ComboBox1_Change()
Dim correspondance(2) As String
correspondance(0) = "Ami"
correspondance(1) = "Collègue"
correspondance(2) = "Famille"
TextBox1.Text = correspondance(ComboBox1.Value - 1)
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To 3
ComboBox1.AddItem i
Next
End Sub
Mais je ne suis pas sûr d'avoir bien compris ce que tu voulais
Dis moi si cela convient
Re : Listbox suivant Combobox sans passer par RowSource
Le 2 désigne la dimension du tableau, sachant que le tableau commence à 0, ce qui fait 3 valeurs.
Si tu as plus de valeurs, il faut le changer.
plus loin dans le code, les chiffres entre parenthèses désignent la ligne du tableau où on va chercher notre valeur
Si tu ne sais pas à l'avance la quantité de données dans ton tableau, tu peux le déclarer
Dim correspondance() As String
et le modifier après.
Pour plus d'informations, cherche des tutos sur les variables tableaux
Re : Listbox suivant Combobox sans passer par RowSource
bonjour tous
tu peus simplifier
Code:
Private Sub UserForm_Initialize()
ComboBox1.List = Feuil2.Range("e6:f" & Feuil2.Cells(Rows.Count, 5).End(xlUp).Row).Value
End Sub
Private Sub ComboBox1_Click()
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1)
End Sub
... et renseigner RowSource, mais cette solution ne me convient pas car il faut que les données soient sur la première ligne de la feuille. j'ai fait des tests sans succès.
Je n'ai pas compris cette phrase...Avec l'une des 3 expressions ci-dessous, cela fonctionne...
Code:
Private Sub UserForm_Initialize()
'ComboBox1.RowSource = "Données!E6:E8"
'ComboBox1.RowSource = Worksheets(Feuil2.Name).Range("E6:E8").Address
ComboBox1.RowSource = Worksheets("Données").Range("E6:E8").Address
End Sub
Re : Listbox suivant Combobox sans passer par RowSource
Je reviens pour te demander comment faire pour éviter la saisie dans la combobox. J'ai fait un petit test et j'ai eu un code d'erreur13, incompatibilité de type. avec arrêt sur cette ligne de code
Re : Listbox suivant Combobox sans passer par RowSource
Bonsoir à tous.
Moi j'ai fait :
VB:
Private Sub UserForm_Initialize()
Me.ComboBox1.List = Feuil2.[E6:E8].Value
End Sub
Private Sub ComboBox1_Change()
TextBox1.Text = Feuil2.[F6].Offset(ComboBox1.ListIndex)
End Sub
Private Sub CommandButton1_Click()
UserForm1.Hide
End Sub
Je n'ai pas compris cette phrase...Avec l'une des 3 expressions ci-dessous, cela fonctionne...
Code:
Private Sub UserForm_Initialize()
'ComboBox1.RowSource = "Données!E6:E8"
'ComboBox1.RowSource = Worksheets(Feuil2.Name).Range("E6:E8").Address
ComboBox1.RowSource = Worksheets("Données").Range("E6:E8").Address
End Sub