lien entre combobox et textbox ou listbox

siscale

XLDnaute Nouveau
Bonjour,

Ma question porte sur un détail concernant les textbox.

Description rapide de ce que je fais:


je remplis un tableau excel via un Userform.

Sur ce Userform j'ai:

-2 comboboxs
-1 textbox
-bouton valider
-bouton quitter

La liste de choix de la deuxième combobox dépend du choix fait dans la première.

De même, la valeur de la textbox est défini par le choix réalisé dans les deux comboboxs.

soit : textbox.value=".." et ce pour une vingtaine de valeurs.

Mon code marche parfaitement. Cependant, lorsque les choix sont faits dans les comboboxs du userform, la valeur ne s'affiche pas directement dans la textbox.

Il faut que je click dedans et que j'appuie sur une touche clavier.

(j'ai essayé aussi textbox.text)

ma question est la suivante: Comment faire pour que, lorsque sur mon userform je fais le choix dans la combobox2, la valeur textbox.value définie dans mon code, s'affiche directement dans la textbox?


faut il utiliser une listbox ?

merci pour votre aide,

Cdlt
 

siscale

XLDnaute Nouveau
Re : lien entre combobox et textbox ou listbox

Bonjour,

Hervé, ceci va me renvoyer ce qui est écrit dans le combobox1.
moi je fais ceci:

si combobox1= x et combobox2 = y alors textbox=z
donc je veux afficher le z dans la textbox. au moment ou j'ai fait le choix dans le combobox 2 car lui est déterminant pour la valeur que je fixe dans la textbox


je vais écrire mon code sans rentrer dans toutes les combinaisons possibles:


option explicit
private sub userform_initialize()

combobox1.columncount=1
combobox1.list()=array("x","y","z")


private sub combobox1_change()

if combobox1.value="x" then
combobox2.columncount=1
combobox2.list()=array("a","b","c")

end if

pareil pour y et z , disons 3 valeurs différentes associées pour pas trop compliquer.

private sub textbox1_change()

if combobox1.value="x" and combobox2.value="a" then textbox1.value="o"

end if
de mutltiples combinaisons possibles.

end sub

private sub commandbutton1_click()

dim L as integer

L=Sheets("Détail 2016").Range("e656565").End(xlUp).Row+1

range("I"&L).Value=Textbox1
.... combobox1
.... combobox2

end sub

merci pour votre aide,
Cdlt
 

Paf

XLDnaute Barbatruc
Re : lien entre combobox et textbox ou listbox

Bonjour à tous,

un classeur sans données confidentielles permettrait de vérifier la pertinence des réponses proposées .

private sub textbox1_change() ne sera déclenchée que lors d'une frappe en textbox1. ce n'est donc pas le bon évènement pour faire apparaitre une valeur dans cette textbox.

la valeur à faire afficher en textbox peut être définie dès la sélection d'une valeur en Combobox2; c'est donc dans private sub combobox2_change() que vous devez insérer vos tests et définir la valeur de la textbox

Code:
private sub combobox2_change()
 if combobox1.value="x" and combobox2.value="a" then textbox1.value="o"
end sub

A+
 

siscale

XLDnaute Nouveau
Re : lien entre combobox et textbox ou listbox

Bonsoir, merci pour ta réponse.
Oui je vais mettre un fichier demain.

mais si dans mon code je fait :

private sub combobox1_change()

if combobox1.value="x" then
combobox2.columncount=1
combobox2.list()=array("a","b","c")

et après

private sub combobox2_change()
if combobox1.value="x" and combobox2.value="a" then textbox1.value="o"
end sub

cela ne crée pas d'interférence sur la combobox2 ?
car la liste de la 2 dépend du choix fait dans la une.

merci d'avance.
 

Discussions similaires

Réponses
16
Affichages
627

Statistiques des forums

Discussions
314 634
Messages
2 111 445
Membres
111 139
dernier inscrit
Double-V