[excel2007] Combobox dans userform

Résolu/Fermé
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 - 3 déc. 2011 à 19:00
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 4 déc. 2011 à 22:06
Bonjour,

Une fois de plus je m'en remet à vous.

Dans le cadre d'un projet personnel il me faudrait faire une combobox en cascade sur 3 niveaux dans un userform.
J'ai préparé mon userform et je n'ai plus qu'à inscrire le code.

Après plusieurs recherches j'ai pu trouver beaucoup beaucoup de codes sur cela, notamment la serie de tutos de Jacques Boisgontier .
De tous ces codes que j'ai pu voir, tous étaient très differents dans la construction (peut être pas pour vous remarque)

Ma question est simple
Pouvez vous m'indiquer quel code est le plus simple pour un débutant ? Ou bien un tutoriels qui serait accessible ?

J'avoue ne pas trop comprendre les codes que j'ai vu (connaissance du vba quasi inexistante)

En vous remerciant par avance



5 réponses

m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
3 déc. 2011 à 19:27
Bonjour,

Je ne sais pas si on peut te répondre quel code est le plus simple ?
Il faudrait déjà savoir parmi lesquels...

Par ailleurs, on ne complexifie par un code pour le plaisir... Si un code paraît plus complexe qu'un autre, c'est surtout qu'il est différent, et que le but cherché n'est pas le même.

Donc, avant tout il faudrait savoir comment est composée ta séries de listes déroulantes.
- Quelle est la source pour chacune ?
- Y a t il une obligation à faire son choix dans un ordre imposé ?
- Une liste 2 découlant du choix dans la liste 1 , qu'en est-il de l'inverse ?
etc.

Voici donc les premières questions qu'il faut se poser avant de se lancer dans un code, et de faire des copier coller sans comprendre les tenants et les aboutissants...

m@rina

1
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
3 déc. 2011 à 19:21
bonjour,

Si tu pouvais nous mettre un exemple de classeur, sans données identifiables et privées, mais avec la structure de tes données et ton code actuel, sur https://www.cjoint.com/ puis nous mettre le lien généré ici ce serait plus facile.
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
3 déc. 2011 à 20:05
Merci de vos réponses
Voici le fichier avec le userform

https://www.cjoint.com/?ALdt2ulgWFf

Ce que je cherche à faire

combobox1 => Famille (quincaillerie,police...)
combobox2 => référence en fonction de la famille
combobox3 => Tarif (3 choix de prix sauf pour quincaillerie qui n'en as qu'un) en fonction de la référence

- Pour ce faire j'ai créé quatre feuilles ayant le même nom que les familles

-J avais chercher aussi à tout réunir sur une feuille (base) mais si on peut faire avec les 4 feuilles je préfère.

-La feuille données recense juste les familles

Suis je bien parti du début ? (certes court le début)
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
3 déc. 2011 à 23:45
bonjour

Quelques modifications effectuées sur ton code

- Ton initialisation ne fonctionne pas car tu as écrit
Private Sub UserForm1_Initialize() alors que c'est
Private Sub UserForm_Initialize() pour chaque formulaire.

- Tu ne peux pas remplir un combobox par code si tu as renseigné rowsource.

- ta feuille "données" ne sert plus à rien ni le nom attribué.

- je t'ai mis le code du bouton "ajouter"

- j'ai affiché tes textbox

- la textbox "prix" n'a pas l'air utile ?


https://www.cjoint.com/?ALdxMOODV7F

Regardes si c'est ce que tu espérais.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
Modifié par ced3c le 4/12/2011 à 18:03
Merci beaucoup gbinforme
Tu as même traité les textbox :)
Pour le prix je préfère comme tu as fait, je vais supprimer le textbox en trop

C'est pilepoil ce que je voulais

Pour le code, je dois dire que je ne comprends pas tout vu que je ne connais pas le vba, je n'aurais pas réussi à adapter un code pour mon projet.

En tout cas grand merci a toi :)


Puis je juste t'embeter un peu plus ?
Comment puis je faire pour envoyer les donnees du formulaire (en verifiant que tout est bien remplie) vers la feuille traitement ?
Le truc c'est que j'en enverrai plusieurs et qu'elle doivent s'enregistrer en ligne les unes sous les autres
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
4 déc. 2011 à 18:13
Autant pour moi tu as même fais l'ajout ^^
J'ai mis l'ajout en feuille traitement cela marche tres bien

Grand merci :)
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 déc. 2011 à 22:06
bonjour ced3c,

Merci pour le retour.

J'ai essayé de garder au mieux ce que tu avais codé. Certes tout ne fonctionnait pas mais ce sont toujours des petits détails comme le nom de ta macro qui créent le plus de soucis.

Le vba est une programmation objet qu'il faut bien intégrer pour en comprendre le fonctionnement et en particulier les fonctions de "change" sur un combobox sont assez complexes à gérer.

C'est en pratiquant régulièrement que tu vas pouvoir maîtriser.
0