Alimenter une combobox en fonction textbox
Résolu
Co_nexion
Messages postés
328
Date d'inscription
Statut
Membre
Dernière intervention
-
Co_nexion Messages postés 328 Date d'inscription Statut Membre Dernière intervention -
Co_nexion Messages postés 328 Date d'inscription Statut Membre Dernière intervention -
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
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule - Forum Bureautique
- Fonction remplacer sur word - Guide
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