Soucis avec combobox change()

Résolu
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

14 réponses

  1. 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
    1. 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
      1. ça va rentrer dans ma petite tête, Maurice

        merci pour ta patience
        0
        1. re
          la combobox5 est = 0

          donc pour ne rien voir

          ComboBox5.ListIndex = -1

          A+
          Maurice
          0
          1. 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
            1. 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
              1. 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
                1. bonjour Maurice

                  il s'agit du userform1 combobox5

                  avec mes excuses pour cette omission
                  0
                  1. 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
                    1. Bonjour
                      quelle Userform ??
                      A+
                      Maurice
                      0
                      1. 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
                        1. 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