Userform combobox et textbox
Résolu/Fermé
A voir également:
- Combobox vba userform
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Autofill vba ✓ - Forum Excel
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
11 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
5 juin 2009 à 14:03
5 juin 2009 à 14:03
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
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
4 juin 2009 à 16:35
4 juin 2009 à 16:35
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.
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.
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 !
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 !
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
4 juin 2009 à 16:52
4 juin 2009 à 16:52
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
4 juin 2009 à 16:57
4 juin 2009 à 16:57
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.
@+
Tu prends le relais pour lui indiquer ou placer ce code?
Merci encore.
Je relirais ce fil demain matin.
@+
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
4 juin 2009 à 17:14
4 juin 2009 à 17:14
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...
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...
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
4 juin 2009 à 17:31
4 juin 2009 à 17:31
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...
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...
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
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
4 juin 2009 à 18:01
4 juin 2009 à 18:01
les résultats sur la colonne B son sous forme texte est ce que ça va changer quelque chose?
non
non