Combo qui refuse de se remplir

1 réponse
Avatar
Daniel
Bonjour Í  toutes et Í  tous,

J'ai un petit usf avec une combo qui se rempli come il faut mai sla
seconde qui est censée se remplir Í  partir de la valeur du CB1 ne le
fait pas. Par conséquence il n'est pas possible de remplir le textbox
final évidemment.
La valeur du CB1 est bien lÍ  mais je ne vois pas le pb.
PlutÍ´t que de copier l'ensemble du code qui est sous UserForm et pas
dans un module ainsi que la feuille Base o͹ se trouve les données
initiales, je met le fichier en dl ci-dessous.


https://www.cjoint.com/c/KAivyglMviw

Merci d'avance Í  celui ou celle qui prendra un peu de temps pour
diagnostiquer l'erreur.

Daniel

1 réponse

Avatar
MichD
Le 08/01/21 Í  16:29, Daniel a écrit :
Bonjour Í  toutes et Í  tous,
J'ai un petit usf avec une combo qui se rempli come il faut mai sla
seconde qui est censée se remplir Í  partir de la valeur du CB1 ne le
fait pas. Par conséquence il n'est pas possible de remplir le textbox
final évidemment.
La valeur du CB1 est bien lÍ  mais je ne vois pas le pb.
PlutÍ´t que de copier l'ensemble du code qui est sous UserForm et pas
dans un module ainsi que la feuille Base o͹ se trouve les données
initiales, je met le fichier en dl ci-dessous.
https://www.cjoint.com/c/KAivyglMviw
Merci d'avance Í  celui ou celle qui prendra un peu de temps pour
diagnostiquer l'erreur.
Daniel

Bonjour,
Dans le formulaire, la procédure "Private Sub ComboBox1_Change()"
Tu dois modifier cette ligne de code :
If Worksheets("Base").Range("A" & J) = ComboBox1.Value Then
Par
If Worksheets("Base").Range("A" & J) = CLng(ComboBox1.Value) Then
En fait, la fonction de conversion Clng() transforme le contenu "TEXTE"
du combobox (un combobox affiche du texte) en numérique (type long).
Maintenant, le symbole "=" prend tout son sens. On compare 2 valeurs
numériques.
Le code devient ceci :
For J = 1 To Worksheets("Base").Range("A" & Rows.Count).End(xlUp).Row
If Worksheets("Base").Range("A" & J) = CLng(ComboBox1.Value) Then
UserForm1.ComboBox2.AddItem Worksheets("Base").Range("B" & J)
End If
Next J
MichD