Projet excel VBA

Résolu
clovis7 Messages postés 20 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 21 mai 2008 - 22 mars 2006 à 13:57
ideschamps Messages postés 20 Date d'inscription mercredi 3 septembre 2003 Statut Membre Dernière intervention 4 avril 2007 - 24 mars 2006 à 09:05
Bonjour à tous !



J'ai choisi un projet : une
aide pour le choix d'un téléphone portable par critère.

Je vais essayer de décrire les points où je bloque et si jamais certains arrivent à me débloquer, ça serait cool !




Donc j'ai fait une interface dans laquelle le client a le choix entre
trois atouts qu'il classe par ordre d'importance : le prix, la taille,
le multimédia. Une fois un atout selectionné, il choisit entre 3
critères et il doit n'en sélectionner qu'un. Par exemple, si le client
choisit en atout 1 le prix, il devra choisir un maximum de 100?, 200?
ou 300?.





Exemple en image:








Mais alors j'ai des soucis.




1- Quel est le moyen le plus simple de faire que, lorsque le client
choisit "prix" en atout 1, il n'est plus que le choix entre
"multimédia" et "taille" en atout 2 ?

Moi j'ai fait 4 listes différentes (une avec les 3 atouts puis 3
différentes avec chacun des 2 atouts non sélectionnés en 1. J'ai
ensuite changé la RowSource en fonction de l'atout selectionné en 1).





2- voilà ce que j'obtiens lorsque je lance :










Or j'aimerais que, dans la zone 1, tous les menus déroulants soient
vides. Et aussi qu'il n'y ait rien du tout en zone 2. C'est seulement
lorsque l'on selectionne son atout 1 que le frame correspondant doit
apparaitre.




3- Et c'est sans doute le plus compliqué... J'aimerais qu'une fois
que le client a fait sa selection est cliqué sue le bouton "valider la
selection", une page apparaisse avec le téléphone qui correspond. Mais
la je ne sais vraiment pas comment faire...





Bref, ça fait pas mal de boulot si quelqu'un veut m'aider... Donc si jamais quelqu'un a du temps à tuer...

Merci !

5 réponses

ideschamps Messages postés 20 Date d'inscription mercredi 3 septembre 2003 Statut Membre Dernière intervention 4 avril 2007
22 mars 2006 à 14:13
Bonjour,

Si tu codes en Visual Basic sous Excel, tu peux intercepter l'évenement Change ou LostFocus sur Atout1 et dans cette fonction tu teste l'élément sélectionné :

if Atout1.Text="Prix" then
tu ajoutes alors les élements autorisés
Atout2.AddItem "multimédia"
Atout2.AddItem "taille"
end if

En ce qui concerne la zone 2, au début tu la met invisible.
Ensuite, dans la même fonction, tu peux la rendre visible
et si tu veux à nouveau la rendre invisble si Atout1 est vide, tu peux tester si un élément est sélectionné :

if Atout1.Text<>"" then
zone2.Visible=true
else
zone2.Visible=false
end if

Pour ton dernier point,
il faut que effecue une recherche dans tes données et lorsque tu as trouvé un élément correspondant, tu peux soit l'afficher dans un MsgBox soit faire une boîte de dialogue avec des renseignements supplémentaires.

En espérant que ça t'aide...

Isa
3
fred.toto Messages postés 73 Date d'inscription mardi 10 avril 2001 Statut Membre Dernière intervention 4 mars 2009
22 mars 2006 à 14:08
On ne voit pas les images
0
clovis7 Messages postés 20 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 21 mai 2008
22 mars 2006 à 14:52
Merci de vos réponses aussi rapide!

Je testerai ce que tu m'as dit Isa dès que j'ai une minute (là je file en cours).



Voila les images : (j'espère que ce coup-ci on les voit!)



"Exemple en image:"





"2- voilà ce que j'obtiens lorsque je lance :"
0
clovis7 Messages postés 20 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 21 mai 2008
23 mars 2006 à 00:39
Merci Isa.

Alors j'ai réussi à faire apparaitre la zone 2 comme je le voulais. Et pour les menues déroulants de la zone 1 c'est bon aussi.



Par contre lorque je fais :

Atout1.Text="Prix" then

Atout2.AddItem "multimédia"

Atout2.AddItem "taille"



...ca marche si je selectionne un seul atout 1, mais si jamais je
reviens sur ce choix alors ça ne marche plus. Si, par exemple, je
choisi "prix" puis "taille" en atout 1, j'aurais en atout 2 le choix
entre "multimédia" (2fois), "taille" et "prix"... Ca me semble normal
d'ailleurs vu que le fonction est AddItem. Peut-on remédier à ce
probleme ?



Pour mon 3ème point, je n'ai pas encore assez réfléchi... j'ai préféré
vous posez la question si jamais il existait des solutions simples et
évidentes... parce que comme vous avez du le remarquer, je suis un
total newbi !
0

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

Posez votre question
ideschamps Messages postés 20 Date d'inscription mercredi 3 septembre 2003 Statut Membre Dernière intervention 4 avril 2007
24 mars 2006 à 09:05
Bonjour,

Ce qu'il faut faire, c'est à chaque fois avant de faire Atout2.AddItem, tu fais un Atout2.Clear (tu vides le contenu de ta liste).

Et lorsque tu changes d'éléments dans Atout1, tu initialises Atout2 en fonction de la sélection.

Isa
0
Rejoignez-nous