Masquer/afficher un boutton sous conditions multiples
Oianoteur
Messages postés5Date d'inscriptionmardi 15 septembre 2015StatutMembreDernière intervention29 septembre 2015
-
Modifié par Oianoteur le 29/09/2015 à 17:09
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
30 sept. 2015 à 00:01
Bonjour,
voilà j'ai une boite de dialogues comprenant plusieurs éléments :
- renseignements sur la personne (nom, prénom, adresse .... ....)
- Une case a cocher si elle désire un hébergement
Si c'est le cas deux options sont possibles :
Logement en résidence U
Logement en Hôtel
Dans ce dernier cas, si la case est cochée, un menu déroulant apparaît permettant de choisir la classe (A, B ou C) de l'hôtel.
- Un bouton OK permettant de valider l'inscription et ainsi saisir les infos dans le classeur excel.
Voila mon problème :
Je voudrais que le bouton Ok ne soit pas dispo si :
- la case a cocher "hébergement?" est cochée et que l'option résidence U ou Hôtel n'est pas cochée
- l'option hôtel et cochée et que la classe A, B, ou C n'est pas choisie
Dans mon code VBA j'avais réalisé un enchaînement successif de If / End If imbriqués les uns dans les autres mais cela ne fonctionne pas.
d'avance merci.
A voir également:
Masquer/afficher un boutton sous conditions multiples
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 29 sept. 2015 à 18:31
Bonjour,
Qu'est-ce qui t'empêche d'écrire un code selon cette logique :
dim erreur as boolean If souhait_hebergement = true then If optionU = false and optionHotel = false then erreur = true Else if optionHotel = true and choixHotel = "" then erreur = true -- end if BoutonOK.visible = not erreur end if
ou choixHotel est le choix fait dans ta liste déroulante ?
C'est presque enfantin.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Oianoteur
Messages postés5Date d'inscriptionmardi 15 septembre 2015StatutMembreDernière intervention29 septembre 2015 29 sept. 2015 à 18:50
Voila ma boite de dialogue :
Et voila mon code VBA pour ce que je recherche (griser ou non le bouton OK :
Mais, j'ai quelques soucis :
Certaines conditions fonctionnent mais pas d'autres :
- Lorsque je coche la case "Hébergement?" le Boutton OK est bien inaccessible.
- Si je le décoche (au cas ou je me serais trompé) le bouton (à n'importe quel moment) OK reste inaccessible
- Si je coche l'option Résidence U alors le bouton OK reste inaccessible
- Si je coche l'option Hotel, le bouton est bien inaccessible car je n'ai pas encore choisie la catégorie de l'hotel
- Si après avoir choisi l'option hotel et sa catégorie, le bouton OK reste inaccessible
Ah, j'ai compris mon erreur, je mettais tout le code dans le même sub sauf que faut attribuer chaque ligne / ordre au sub correspondant !
Désolé, je débute dans la VBA =)
Par contre il me reste un seul soucis :
Je n'arrive pas a rendre mon bouton OK indisponible quand je clic sur Hôtel et que la valeur du type d'hôtel = ""
j'ai pourtant écrit ce code la dans le sub du bouton option Hôtel :
If Hôtel.Value = True And TypeHôtel.Value = "" Then
OK.Enabled = False
End If
Il faut que tu désélectionnes tout dans ta listbox, au click sur ton bouton Hébergement ( TypeHotel.listindex = -1)
Car si tu ne le fais pas, la dernière sélection reste bien évidemment là. Le fait de rendre ta listbox invisible ne désélectionne pas ce qui y est déjà sélectionné.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.