liste choix combobox dépendant de valeur textbox

gaston gaston
1 621 contributions
Membre depuis le 01/03/2001
Envoyé le 30/01/2003 à 09:04


bonjour !
j\'ai un textbox avec la date de naissance, et un combobox où on peut choisir \"article pour + de 16 ans\", \"article pour - de 16 ans\", ou \"aucun article\". Je voudrais que suivant la date de naissance, on ne puisse choisir qu\'entre 2 possibilités: l\'article correspondant à l\'âge ou aucun article. Comment puis-je faire ?
carpe diem
Bipbipcoyote Bipbipcoyote
4 321 contributions
Membre depuis le 06/03/2001
Envoyé le 30/01/2003 à 10:44


Private Sub ComboBox1_DropButtonClick()
If TextBox1 < 16 Then

ComboBox1.AddItem \"Articles pour -16Ans\"
ComboBox1.AddItem \"Pas d\'articles\"
Else
ComboBox1.AddItem \"Articles pour +16Ans\"
ComboBox1.AddItem \"Pas d\'articles\"
End If

End Sub

Private Sub ComboBox1_GotFocus()
ComboBox1.Clear \'Pour nettoyer la combobox sinon les items s\'accumulent

End Sub

Private Sub ComboBox1_LostFocus()
ComboBox1.Clear
End Sub

Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
gaston gaston
1 621 contributions
Membre depuis le 01/03/2001
Envoyé le 30/01/2003 à 11:21


Merci je vais tester ça.

Une autre question: comment faire pour que le focus aille automatiquement au contrôle suivant, lorsqu\'on a atteint le nombre maxi de caractère autorisé ? J\'ai entré une valeur maxlengh, mais arrivé au nombre de caractères indiqué, le contrôle garde le focus
carpe diem
Bipbipcoyote Bipbipcoyote
4 321 contributions
Membre depuis le 06/03/2001
Envoyé le 30/01/2003 à 11:44


il devrait suffire de donner le nom de l\'objet et activate
donc exemple si après qq lignes de code , je veux aller dans la combobox, j\'utilise

ComboBox1.Activate

cela place le point d\'insertion (curseur sur l\'objet choisi)
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bipbipcoyote Bipbipcoyote
4 321 contributions
Membre depuis le 06/03/2001
Envoyé le 30/01/2003 à 11:46


oups! erreur, stop, ça ne va pas, ça fait bien ce que je dis mais on n\'a pas la main... je cherche [;)]
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
gaston gaston
1 621 contributions
Membre depuis le 01/03/2001
Envoyé le 30/01/2003 à 17:52


J\'ai entré une valeur maxlengh, mais arrivé au nombre de caractères indiqué, le contrôle garde le focus

j\'avais oublié de mettre autotab en valeur true !!
Pour en revenir à ma première question, j\'ai essayé de faire varier la rowsource du combobox (en fait j\'ai énormément d\'Items et en plus y a quelque chose qui colle pas dans ton code):

If TextBox1.Value > 16 Then
Combobox1.Rowsource = 16sup
Else :
ComboBox1.Rowsource = 16inf
End if

où 16sup et 16inf sont des plages du classeur Excel

et ça ne fonctionne pas !!
Pourquoi à ton avis ?

carpe diem
Bipbipcoyote Bipbipcoyote
4 321 contributions
Membre depuis le 06/03/2001
Envoyé le 30/01/2003 à 18:58


je pense que tu devrais t\'inspirer d\'une organisation pareille à ceci
[LIEN]http://membres.lycos.fr/bipbipcoyote/Excel/ListeModifiable/Pages/ComboBox.html[/LIEN] en utilisant des références sur une feuille cachée par exemple

en plus y a quelque chose qui colle pas dans ton code

ok je viens de comprendre que ton > 16 ou <16 c\'est la condition pour sélectionner les items et il ne fallait pas affichier ces deux conditions ....

tu pourrais donc utiliser qq chose comme
(en utilisant la méthode décrite sur la page, ce sera sans doute plus facile pour la maintenance de la liste)

Feuil1.ComboBox1.ListFillRange = (Feuil1.Range(\"A1:A55\"))
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
gaston gaston
1 621 contributions
Membre depuis le 01/03/2001
Envoyé le 30/01/2003 à 19:19


en fait la liste est déjà faite et ne doit pas être modifiée...
j\'ai essayé de mettre ListFillRange, comme tu me l\'as indiqué mais ça me donne un erreur
carpe diem
gaston gaston
1 621 contributions
Membre depuis le 01/03/2001
Envoyé le 30/01/2003 à 19:22


très exactement ça me met: Méthode ou membre de données introuvable (erreur 461)
mon code:
Private Sub age_Change()
If age.Value > 16 Then
typemonture.ListFillRange = (ss.Range("A29:A30"))
Else :
typemonture.ListFillRange = (ss.Range("A27:A28"))
End If
End Sub
carpe diem
Bipbipcoyote Bipbipcoyote
4 321 contributions
Membre depuis le 06/03/2001
Envoyé le 30/01/2003 à 21:09


tous les contrôles sont ils sur la même feuille ? Sinon, il faut stipuler le nom du \"parent\" , c\'est un peu comme l\'arborescence de fichiers sous DOS, si tu ne lui indiques pas où trouver l\'objet, il considère que c\'est sur la feuille ou formulaire actif...
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bipbipcoyote Bipbipcoyote
4 321 contributions
Membre depuis le 06/03/2001
Envoyé le 31/01/2003 à 00:43


tu devrais plutôt utiliser if val(age) > 16 then .... je l\'ai dit sur un autre post, les textbox sont de type texte donc il vaut transformer leur type en numérique
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions

Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum