Excel combobox et label

Résolu
Bonjour,
j'ai une combobox (Cbx_NomVendeur) qui fonctionne mais je voudrais afficher dans un label(lbl_vendeur) le numero de ce vendeur. Dans ma feuille vendeurs les numero de vendeur sont en dans la colonne A et les nom dans la collonne B (a partir de A2 et B2).
Apres quelques essais et recherche je n'y arrive toujours pas.

Private Sub Cbx_NomVendeur_Change()

Sheets("vendeurs").Activate
lbl_vendeur.Caption = WorksheetFunction.HLookup(Cbx_NomVendeur.Text, Range("?"), 1, False)

end sub

10 réponses

  1. Bonjour,

    Parfait si ça marche comme ça, n'oublie pas de cocher la case résolu

    Bonne cntinuation

    ;o)

    Polux
    0
    1. J'ai resolu le probleme comme ça

      Dim f As Worksheet
      Set f = ActiveWorkbook.Sheets(FrmSaisieVendeur.Cbx_NomVendeur.Value)

      X = f.Range("K1")
      X = X + 1
      f.Range("B" & CStr(X + 1)) = Workbooks("classeurvendeur").Worksheets("vendeurs").Range("B9")
      f.Range("K1") = X
      0
      1. oupsss un UserForm (FrmSaisieVente) n'est pas une feuille Excel ... c'est un objet ... aucun rapport entre les deux ... je n'ai pas tout épluché mais là, il y a un truc à revoir

        ;o)

        Polux
        0
        1. Contributeur
          bonjour

          Je n'ai pas tout à fait tout compris mais il me semble que tu devrais décomposer ainsi
          Workbooks("classeurvendeur").activate
          Worksheets( FrmSaisieVente.Cbx_NomVendeur.text).activate
          Range("K1").select


          0
          1. j'ai encore un probleme (qui devrait être le dernier enfin j'espere)

            voila le probleme : j'ouvre un classeur et je voudrais pouvoir selectionner la feuille du nom du vendeur pour pouvoir y ecrire les information de la vente

            j'ai essayer ceci :

            NomFeuille As Worksheet
             NomFeuille = FrmSaisieVente.Cbx_NomVendeur.text
            
            X = Workbooks("classeurvendeur").Worksheets(NomFeuille).Range("K1")
            
            Workbooks("classeurvendeur").Worksheets(NomFeuille).Range("C" & CStr(X + 1)) 
            = Workbooks("concessionnaire").Worksheets(justificatif).Range("B13")
            
            X = X + 1
            Workbooks("classeurvendeur").Worksheets(NomFeuille).NomFeuille.Range(K1) = X


            et aussi Workbooks("classeurvendeur").NomFeuille.range a la place de
            Workbooks("classeurvendeur").Worksheets(NomFeuille).Range

            Le message d'erreur est :"erreur de compilation instruction incorrecte a l'exterieur d'un bloc de type"

            je ne sait comment faire car le nom de la feuille change en fonction du vendeur.

            Bonne Année a tous
            0
            1. Bonjour,

              Tu peux également le faire sans avoir à rajouter une colonne à Cbx_NomVendeur.

              Private Sub Cbx_NomVendeur_Change()
              lbl_vendeur.Caption = SearchNum(Cbx_NomVendeur.Text)
              End Sub

              Private Function SearchNum(Byval str As String) As String
              Dim i As Long
              i = 2
              With Workbooks("concessionnaire.xls").Worksheets("vendeurs")
              While .Range("A" & i).Value <> ""
              If .Range("B" & i).Value = str Then
              SearchNum = .Range("A" & i).Value
              Exit Function
              End If
              i = i + 1
              Wend
              End With
              End Function

              Bon courage et meilleurs voeux 2008

              ;o)

              Polux
              0
              1. Grand merci ça fonctionne, je n'aurai jamais pu trouvé ça tout seul.
                merci
                0
                1. Contributeur
                  bonjour

                  Dans ton chargement tu rajoutes cette ligne et tu n'auras plus l'erreur.
                           Cbx_NomVendeur.AddItem NomVendeur
                        Cbx_NomVendeur.List(I - 2, 2) = Workbooks("concessionnaire.xls").Worksheets("vendeurs").Range( "A" &  CStr(I))
                                I = I + 1
                  
                  0
                  1. Private Sub Cbx_NomVendeur_Change()
                    lbl_vendeur.Caption = Cbx_NomVendeur.List(Cbx_NomVendeur.ListIndex, 2)
                    End Sub

                    Ce code me donne "erreur 'execution 381 imposibilité de lire la proprieté list. Index de tablede proprieté non valide."
                    je voudrai en fait que : a chaque fois que l'on choisit dans la combobox un vendeur il affiche dans le label le numero de vendeur
                    On peut ajouté des vendeurs avec une macro donc je ne peut pas remplire la liste en additem

                    La liste des vendeur est faite automatiquement par ce code

                      Dim I As Integer
                            I = 2
                          Dim NomVendeur As Variant
                    
                          NomVendeur = Workbooks("concessionnaire.xls").Worksheets("vendeurs").Range("B" & CStr(I))
                    
                          Do While NomVendeur <> ""
                                  NomVendeur = Workbooks("concessionnaire.xls").Worksheets("vendeurs").Range("B" & CStr(I))
                                  Cbx_NomVendeur.AddItem NomVendeur
                                  I = I + 1
                         Loop
                         End Sub

                    Le tableau:
                     Numéro du vendeur	         Nom du vendeur
                            C410	                               Bonnard
                            C420	                               Archault
                            C430	                               Goufin
                            C440	                               Paricialès
                            C450	                               Spémont
                            C460	                               Vistock
                    	
                    0
                    1. Contributeur
                      bonjour

                      Si j'ai bien compris, dans ton combo tu affiches le nom colonne B et tu veux retrouver l'index colonne A : ce n'est pas possible avec une recherchev.

                      Lorsque tu charges ton combo, tu peux mettre le numéro en colonne 2 du combo et ainsi il suffit de mettre
                      lbl_vendeur.Caption = Cbx_NomVendeur.List(Cbx_NomVendeur.ListIndex, 2)
                      0