Soucis avec combobox change()

Résolu/Fermé
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 - 5 nov. 2014 à 02:18
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 - 6 nov. 2014 à 19:53
Bonjour,
j'ai une combobox avec deux valeurs choix1 et choix2
if combobox1 = choix1 then
instructions
........
else
combobox1 = choix2
instructions
.........
end if
end sub

tout ce qu'il y a de plus simple. Eh bien non !

mon problème : la valeur de la variable choix2 apparait par défaut dans ma combobox
alors que celle-ci devrait être blanche
je clique sur la flêche . Mes deux valeurs apparaissent et je peux sélectionner mon choix.
dans ma feuille qui a servi à faire cette combobox j'ai en a1 une cellule blanche
en A2 la valeur de mon choix1
et en A3 la valeur de mon choix2

je ne comprends pas. j'ai créé d'autres comboboxes de la même manière et elle fonctionne très bien

Pouvez vous m'expliquer

merci

A voir également:

14 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
5 nov. 2014 à 08:16
Bonjour,

mettez votre fichier a disposition en changeant les donnees sensible sur:

https://www.cjoint.com/
0
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 14
5 nov. 2014 à 11:26
Bonjour f894009

voici le lien du fichier à disposition




https://www.cjoint.com/?DKflDOVj5bv

merci
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 5/11/2014 à 12:11
Bonjour,

regarde comme cela

Private Sub ComboBox1_Change()
If ComboBox1.Value = "instruction1" Then
résultat1
Else
résultat2
End If
End Sub

et si tu as plusieurs instructions

Private Sub ComboBox1_Change()
If ComboBox1.Value = "instruction1" Then
résultat1
ElseIf ComboBox1.Value = "instruction2" Then
résultat2
ElseIf ComboBox1.Value = "instruction3" Then
résultat3
Else
résultat4
End If
End Sub

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 14
5 nov. 2014 à 12:31
bonjour Mike-31
avant j'avais trois instructions et cela fonctionnait très bien avec la combobox
j'ai modifié ma liste pour n'avoir que deux choix et ai donc enlevé
le elseif de la procédure et là problème.

voici le lien de mon fichier

https://www.cjoint.com/?3KfmJRmTAg6
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour
quelle Userform ??
A+
Maurice
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
5 nov. 2014 à 14:34
Re,

peux tu répondre à la question de Maurice s'il te plait, pour ma part je ne vois pas de combobox à deux conditions dans ton fichier
0
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 14
5 nov. 2014 à 15:00
bonjour Maurice

il s'agit du userform1 combobox5

avec mes excuses pour cette omission
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 5/11/2014 à 15:28
Re,

le code fonctionne parfaitement, si tu choisis vaisselle cela affiche bien ta ligne de contrôle comme si tu choisis choix2 cela affiche bien l'autre ligne
tu peux ajouter .value dans le code

Private Sub ComboBox5_Change()
Worksheets("bonsortie").Range("B1").ClearContents
If ComboBox5.Value = Choix1 Then
TextBox9.Visible = True
TextBox10.Visible = True
TextBox11.Visible = True
TextBox12.Visible = False
TextBox13.Visible = False
TextBox14.Visible = False
TextBox19.Visible = True
TextBox20.Visible = False
ListBox1.Visible = True
ListBox2.Visible = False
Label8.Visible = True
Label12.Visible = False
Else

ComboBox5.Value = Choix2
TextBox9.Visible = False
TextBox10.Visible = False
TextBox11.Visible = False
TextBox12.Visible = True
TextBox13.Visible = True
TextBox14.Visible = True
TextBox19.Visible = False
TextBox20.Visible = True
ListBox1.Visible = False
ListBox2.Visible = True
Label8.Visible = False
Label12.Visible = True

End If
End Sub

par contre le calcul ne se fait pas sur les texbox 19 et 20
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Bonjour

je prefere avec Listindex

Private Sub ComboBox5_Change()
If ComboBox5.ListIndex = 0 Then
TextBox9.Visible = True
TextBox10.Visible = True
TextBox11.Visible = True
TextBox12.Visible = False
TextBox13.Visible = False
TextBox14.Visible = False
TextBox19.Visible = True
TextBox20.Visible = False
ListBox1.Visible = True
ListBox2.Visible = False
Label8.Visible = True
Label12.Visible = False
Else
TextBox9.Visible = False
TextBox10.Visible = False
TextBox11.Visible = False
TextBox12.Visible = True
TextBox13.Visible = True
TextBox14.Visible = True
TextBox19.Visible = False
TextBox20.Visible = True
ListBox1.Visible = False
ListBox2.Visible = True
Label8.Visible = False
Label12.Visible = True
End If
End Sub

et evite de faire 2 fois la combox5 dur
et pour 2 varriable on fait comme ca

ComboBox5.Clear
ComboBox5.AddItem "Vaisselle"
ComboBox5.AddItem "Materiel"
ComboBox5.ListIndex = 0


A+
maurice
0
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 14
5 nov. 2014 à 16:39
mike-31 - oui mike il fonctionne mais ce qui me chagrinait c'est que materiel apparaisse en premier et ensuite lorsque je clique sur la flêche vaisselle et matériel apparaissent et je peux faire mon choix. je voulais au départ une combobox vide et appuyer sur la flêche pour faire apparaitre vaisselle et materiel et pouvoir choisir ou qu'apparaisse par défaut en premier vaisselle et ensuite cliquer sur la flêche pour faire apparaitre materiel.
mais le problème provenait surement du fait que, comme le dit maurice, j'avais fait "2 fois la combox5 dur".

les valeurs des textbox19 et 20 apparaissent lorsque je confirme les quantités
via mon msgbox

je vais donc faire comme le préconise Maurice

mike-31 - maurice je vous remercie beaucoup pour votre aide une fois de plus
0
re
la combobox5 est = 0

donc pour ne rien voir

ComboBox5.ListIndex = -1

A+
Maurice
0
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 14
5 nov. 2014 à 17:51
ça va rentrer dans ma petite tête, Maurice


merci pour ta patience
0
Bonjour

voila une astuce pour les quantitée

Private Sub ListBox1_Change()
'je recupère la valeur de la feuil2 dans la textbox
Ligne = ListBox1.ListIndex + 2
With Feuil2
TextBox9 = .Cells(Ligne, 4)
TextBox10 = ""
TextBox11 = Replace(.Cells(Ligne, 5), ",", ".")
TextBox19 = ""
TextBox10.SetFocus
End With
End Sub

Private Sub TextBox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
KeyAscii = KeyAscii
Case Else
KeyAscii = 0
End Select
End Sub

Private Sub TextBox10_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox19.Value = Val(TextBox10.Value) * Val(TextBox11.Value)
End Sub

A+
Maurice
0
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 14
6 nov. 2014 à 19:53
Bonsoir Maurice,
je vais modifier mon programme pour y mettre ton astuce
je te tiens informé dans la journée de demain 7 nov

merci beaucoup pour l'intérêt que tu portes à mon projet
0