Alimenter une combobox en fonction textbox
Résolu
Co_nexion
Messages postés
333
Statut
Membre
-
Co_nexion Messages postés 333 Statut Membre -
Co_nexion Messages postés 333 Statut Membre -
Bonjour,
Cherchant depuis maintenant quelques temps, je commence à perdre la tête et je viens vers vous pour m'aiguiller.
Je souhaiterai alimenter une combobox en fonction du nom apparaissant dans la textbox. Le pire dans cette histoire, c'est que j'ai réussi à faire en sorte que ce nom apparaissent grâce au choix effectué dans une première listbox - mais l'inverse je n'y arrive pas :(
Alors je l'imagine comme cela mais rien ne se passe
Merci à vous
Cherchant depuis maintenant quelques temps, je commence à perdre la tête et je viens vers vous pour m'aiguiller.
Je souhaiterai alimenter une combobox en fonction du nom apparaissant dans la textbox. Le pire dans cette histoire, c'est que j'ai réussi à faire en sorte que ce nom apparaissent grâce au choix effectué dans une première listbox - mais l'inverse je n'y arrive pas :(
Alors je l'imagine comme cela mais rien ne se passe
Private Sub ComboBox4_Change()
If TextBox2 = "fonctionnaire" Then
ComboBox4.AddItem "journée"
ComboBox4.AddItem "journée férié"
ComboBox4.AddItem "nuit"
End If
If TextBox2 = "CDI" Then
ComboBox4.AddItem "..."
End If
End Sub
Merci à vous
A voir également:
- Alimenter une combobox en fonction textbox
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Cette fonction n'est pas disponible actuellement tv lg - Forum Téléviseurs
5 réponses
Salut,
Puisque le contenu de ta combo doit varier en fonction de la saisie d'un textbox, je choisirais déjà comme événement déclencheur de la macro, l'événement TextBox_Exit.
D'autre part, si tu utilises un même combo pour plusieurs listes, il convient de supprimer à chaque fois les items de cette liste (méthode .Clear).
Une dernière chose, dans ton cas je privilégierais un Select Case plutôt que des If, plus explicite...
Par conséquent, voici un code à essayer :
Puisque le contenu de ta combo doit varier en fonction de la saisie d'un textbox, je choisirais déjà comme événement déclencheur de la macro, l'événement TextBox_Exit.
D'autre part, si tu utilises un même combo pour plusieurs listes, il convient de supprimer à chaque fois les items de cette liste (méthode .Clear).
Une dernière chose, dans ton cas je privilégierais un Select Case plutôt que des If, plus explicite...
Par conséquent, voici un code à essayer :
Private Sub UserForm_Initialize()
ComboBox4.Clear
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'selon le cas du contenu de textbox2
Select Case TextBox2
Case "fonctionnaire"
ComboBox4.Clear
ComboBox4.AddItem "journée"
ComboBox4.AddItem "journée férié"
ComboBox4.AddItem "nuit"
Case "CDI"
ComboBox4.Clear
ComboBox4.AddItem "..."
Case Else
ComboBox4.Clear
MsgBox "Erreur de saisie"
End Select
End Sub
Le problème vient de l'endroit ou est indiqué Fonctionnaire ou CDI. Dans ton code tu nous indique : Select Case ComboBox1 or il ne sera jamais indiqé CDI dans ta combobox1 mais dans le textbox...
Ensuite, vérifie bien l'orthographe... Dans ta feuille, tu saisies "Fonctionnaire", mais dans le code on voit "fonctionnaire". C'est différent!...
Essaye :
Cordialement,
Franck P
Ensuite, vérifie bien l'orthographe... Dans ta feuille, tu saisies "Fonctionnaire", mais dans le code on voit "fonctionnaire". C'est différent!...
Essaye :
Private Sub ComboBox1_Change()
'Selectionne la même ligne que le nom
Dim Lgn&
Lgn = ComboBox1.ListIndex + 1
'Inscrit le statut en textbox
With Sheets("ftp")
TextBox2.Value = .Cells(Lgn + 1, 4)
End With
'Mettre à jour la combo2 en sélectionnant un nom dans la combo1
'en fonction de ce qui apparait dans le TextBox2
Select Case TextBox2
Case "Fonctionnaire"
ComboBox4.Clear
ComboBox4.AddItem "journée"
ComboBox4.AddItem "journée férié"
ComboBox4.AddItem "nuit"
Case "CDI"
ComboBox4.Clear
ComboBox4.AddItem "..."
End Select
End Sub--
Cordialement,
Franck P
Merci Pijaku,
Juste une question, la combobox2 pourrait elle se mettre à jour lorsqu'un nom dans la combobox1 est selectionné ? (donc sans avoir à cliquer sur le textbox pour la mettre à jour)
Juste une question, la combobox2 pourrait elle se mettre à jour lorsqu'un nom dans la combobox1 est selectionné ? (donc sans avoir à cliquer sur le textbox pour la mettre à jour)
Bonjour!
la combobox2 pourrait elle se mettre à jour lorsqu'un nom dans la combobox1 est selectionné ?
Bien entendu!...
Pour cela, nous allons utiliser l'événement Change de la ComboBox1.
N'hésite pas...
la combobox2 pourrait elle se mettre à jour lorsqu'un nom dans la combobox1 est selectionné ?
Bien entendu!...
Pour cela, nous allons utiliser l'événement Change de la ComboBox1.
Private Sub ComboBox1_Change()
Select Case ComboBox1
Case "fonctionnaire"
ComboBox2.Clear
ComboBox2.AddItem "journée"
ComboBox2.AddItem "journée férié"
ComboBox2.AddItem "nuit"
Case "CDI"
ComboBox2.Clear
ComboBox2.AddItem "..."
Case Else
ComboBox2.Clear
End Select
End Sub
N'hésite pas...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Alors je viens d'essayer ce bout de code, cependant ça ne réagit pas en changeant de nom dans la combo1. J'ai essayer en faisant un "private sub textbox2_change()" mais pas non plus... Je te met le fichier pour que tu puisse voir plus facilement.
https://www.cjoint.com/?BEFjQtZywk3
Alors je viens d'essayer ce bout de code, cependant ça ne réagit pas en changeant de nom dans la combo1. J'ai essayer en faisant un "private sub textbox2_change()" mais pas non plus... Je te met le fichier pour que tu puisse voir plus facilement.
https://www.cjoint.com/?BEFjQtZywk3