Userform combobox et textbox

Résolu
Bonjour,

Je suis débutante sur VBA et je cherche à mettre en page une feuille excel en utilisant userform.

J'ai créé un combobox répertoriant toutes les informations de ma liste dans la colonne A et je voudrais que lorsque quelqu'un choisi choisi un element dans la colonne A le résultat de la colonne B apparaisse dans le textbox.

Par exemple :

A B
5 mineur
9 mineur
18 Majeur

Est ce que quelqu'un peut m'aider ???? Je peux reformuler si c'est pas trés claire

Merci beaucoup
Configuration: Windows XP Internet Explorer 6.0

11 réponses

  1. C'est génial merci beaucoup tu es un super prof !!!

    A plus !
    0
    1. Modérateur
      Re-
      Je reviens comme promis sur le sujet.
      Explications sur ce qu'a fait michel :
      Private Sub ComboBox1_Click() -----> action lorsque l'on clique sur combobox
      valeur = ComboBox1 -----> tout est dit, on définit le contenu du combobox comme variable
      lig = Columns(1).Find(valeur, Range("A65536")).Row ----> renvoie le numéro de la ligne correspondante à la valeur cherchée
      Unload UserForm1 ---->ici je ne pige pas l'utilité on unload l'userform...
      End Sub

      Ca fonctionne, mais ne renvoie que le numéro de ligne. Puisque tu es débutante un p'tit coup de main?
      voilà :
      Private Sub UserForm_Activate() 'Lors de l'activation du Userform
      ActiveSheet.Range("A1").Select 'tu sélectionnes la 1ère valeur à inscrire dans ta combobox
      Do While ActiveCell <> "" 'tant que la cellule est non vide
      ComboBox1.AddItem ActiveCell 'tu ajoutes la valeur contenue dans la cellule à ta liste déroulante
      ActiveCell.Offset(1, 0).Select ' tu sélectionnes la cellule suivante dans la colonne A
      Loop 'et hop on recommence.
      End Sub
      ça tu l'avais fait.
      Ensuite :
      Private Sub ComboBox1_Change()
      valeur = ComboBox1 'expliqué plus haut
      lig = Columns(1).Find(valeur, Range("A65536")).Row 'expliqué plus haut
      TextBox1.Value = Range("B" & lig).Value 'la valeur du textbox = valeur de la cellule B & ligne
      End Sub
      ça fonctionne pas trop mal.
      Bon courage
      1
      1. Re,

        J'ai du mal à comprendre ou est ce que je dois enregistrer le code j'ai bien essayé dans

        Private Sub ComboBox1_Change()

        mais ça à pas l'air de marcher ....

        Un petit coup de pouce xD
        0
        1. Contributeur
          les résultats sur la colonne B son sous forme texte est ce que ça va changer quelque chose?
          non
          0
          1. Merci infiniment à tous les deux !!!!

            J'aimerai juste rajouter une information les résultats sur la colonne B son sous forme texte est ce que ça va changer quelque chose?

            Je testerai le code demain xD
            0
            1. Contributeur
              re,

              si on fait
              Private Sub ComboBox1_Click()
              valeur = ComboBox1
              lig = Columns(1).Find(valeur, Range("A65536")).Row
              Unload UserForm1
              End Sub

              valeur est du type string
              et ce n'est pas génant si les données en feuille XL sont des nombres
              Tu avais donc raison! tu vois que...
              0
              1. Contributeur
                bah non, continue...

                j'vais regarder un truc dont je suis pas sûr: type de la donnée renvoyé par le combo
                je fais faire une maquette et utiliser l'espion du débogage...
                0
                1. Modérateur
                  T'inquiète je sais que ma syntaxe laisse à désirer ayant appris seul avec Excel97.
                  Tu prends le relais pour lui indiquer ou placer ce code?
                  Merci encore.
                  Je relirais ce fil demain matin.
                  @+
                  0
                  1. Contributeur
                    Bonjour,

                    excusez d'intervenir dans cette discussion

                    Pijaku:

                    Val est un mot réservé en VBA: appelle cette variable "valeur" par ex
                    tu dis que valeur est du type string, t'es sûr? il faut que ca soit du m^me type que ce qu'il y a sur la feuille XL

                    si la liste par en A1
                    lig= columns(1).find(valeur,range("A65536"))
                    textbox1=cells(lig,2)

                    t'évite une boucle et la vision du déplacement de la cellule active pour l'utilisateur

                    Surtout, Ne prends pas mal ce que je viens de te dire, on m'a fait aussi ce genre de remarques et ca m'a fait progresser
                    0
                    1. Dsl je suis une GROSSE débutante ! :p

                      J'ai rentré le code sous combobox :

                      Private Sub ComboBox1_Change()
                      Dim val As String
                      val = ComboBox1.Value
                      Range("D6").Select
                      Do While ActiveCell <> val
                      ActiveCell.Offset(1, 0).Select
                      Loop
                      End Sub

                      puis dans mon textbox j'ai mis le code suivant :

                      TextBox1.Value = ActiveCell.Offset(0, 1).Select

                      J'ai du oublié de faire quelque chose par ce que ca marche pas !
                      0
                      1. Modérateur
                        Salut,
                        Tu lances la recherche du résultat de ta combobox1 dans la colonne A :
                        Dim val as string
                        val = combobox1.value
                        Range("A1").Select ' ou A1 est la première cellule de ta liste
                        Do while activecell <> val
                        activecell.offset(1 , 0).select
                        loop
                        Et ensuite tu "importes" la valeur correspondante de la colonne B dans ton textbox1 :
                        textbox1.value = activecell.offset(0,1).select
                        ça devrait fonctionner.
                        0