Réinitialiser immédiatement un ComboBox

Bonjour,

Afin d’aider un autre membre, jj93 pour ne pas le nommer, je travaille sur le fichier ci-joint. Mais je suis tombé sur un os.

Lorsque je clique sur le bouton « Ajouter » et que je choisis une catégorie dans le deuxième ComboBox en place, ça lance le code « ComboBox_c_Change » qui actualise le nom « Liste_Choix_o » en fonction des données présentes sur la feuille « Choix_o ».

Tout ceci fonctionne assez bien sauf que la liste « Liste_Choix_o » n’est pas immédiatement réactualisée dans le ComboBox correspondant au libellé « Choix obligation » - soit la ComboBox1 - dans le UserForm ouvert. A ce moment, la dernière liste correspondant au nom « Liste_Choix_o » MAIS AVEC SES ANCIENNES REFERENCES est visible et il faut refermer le UserForm et le rouvrir par l’intermédiaire du bouton « Ajouter » afin que la ComboBox1 corresponde à ce qui est souhaité, soit au nom « Liste_Choix_o » avec ses nouvelles références.

En d’autres mots je pourrais également dire que je voudrais réinitialiser immédiatement le ComboBox1 en fonction des nouvelles références du nom « Liste_Choix_o » suite à la modification de la ComboBox_c.

Un exemple si c’est encore nécessaire : dans le UserForm je choisi « Juridique » comme « Choix catégorie » et sous « Choix obligation, j’ai probablement un choix fantaisiste. Je referme le UserForm et l’ouvre à nouveau. Lorsque je choisi « Fiscale » comme « Choix catégorie », je désirerais avoir dans la liste déroulante sous « Choix obligation » les données de la plage A7:A9 de la feuille « Choix_o » alors que ce sont celle de la plage A2:A6, qui correspond au dernier choix effectué lors de l’avant-dernière ouverture du UserForm.

Quelqu’un peut m’aider ?

46demo-forum.xlsm (26.93 Ko)

Bonjour,

Il te suffit juste de réaffecter la plage.

Sous la ligne :

ActiveWorkbook.Names("Liste_Choix_o").RefersToR1C1 = "=Choix_o!R" & PremièreLig & "C1:R" & DernièreLig & "C1"

tu inscris :

ComboBox1.RowSource = "Liste_Choix_o"

donc :

ActiveWorkbook.Names("Liste_Choix_o").RefersToR1C1 = "=Choix_o!R" & PremièreLig & "C1:R" & DernièreLig & "C1"
ComboBox1.RowSource = "Liste_Choix_o"

et ta combo sera rafraîchi.

Hervé.

Bonjour

Une autre idée : Utiliser AddItem (plus souple)

J'ai repris le fichier de l'autre post

Bonjour à vous deux et merci beaucoup pour vos réponses,

These, ta solution correspond exactement à ma demande et ça fonctionne parfaitement

Banzai, avec ta solution, si je choisis « Toutes » sous « Choix catégorie », j’ai également la cellule A1 de la feuille « Choix-o » qui vient s’afficher dans la liste déroulante du Combobox correspondant au libellé « Choix obligation ».

Merci encore à tous deux et excellente continuation.

Rechercher des sujets similaires à "reinitialiser immediatement combobox"