Excel combobox et label
Résolu/Fermé
didi61
-
30 déc. 2007 à 18:48
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 4 janv. 2008 à 11:03
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 4 janv. 2008 à 11:03
A voir également:
- Excel combobox et label
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Formule excel - Guide
- Aller à la ligne excel - Guide
10 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 688
30 déc. 2007 à 22:19
30 déc. 2007 à 22:19
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)
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)
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 688
31 déc. 2007 à 10:08
31 déc. 2007 à 10:08
bonjour
Dans ton chargement tu rajoutes cette ligne et tu n'auras plus l'erreur.
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
1 janv. 2008 à 11:48
1 janv. 2008 à 11:48
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
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
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 :
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
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 688
2 janv. 2008 à 09:51
2 janv. 2008 à 09:51
bonjour
Je n'ai pas tout à fait tout compris mais il me semble que tu devrais décomposer ainsi
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
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
2 janv. 2008 à 11:17
2 janv. 2008 à 11:17
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
;o)
Polux
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
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
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
4 janv. 2008 à 11:03
4 janv. 2008 à 11:03
Bonjour,
Parfait si ça marche comme ça, n'oublie pas de cocher la case résolu
Bonne cntinuation
;o)
Polux
Parfait si ça marche comme ça, n'oublie pas de cocher la case résolu
Bonne cntinuation
;o)
Polux