Priorité sur opérateur logique or et and

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Airone784

XLDnaute Occasionnel
Bonsoir le forum,

Je cherche depuis un moment la solution mais en vain. Je dispose d'une UF avec un commandbutton4 dont la propriété enabled=false.

Je souhaiterais que la propriété enabled passe à true si (combobox1<>"" et checkbox13=true) ou si (checkbox13=true et label11>0) ou si (checkbox13=true and combobox1<>"" and label11>0) mais je n'arrive pas à combiner les 2 conditions.

Je vous joins le fichier pour mieux comprendre et me filer un coup de pouce je l'espère.

Merci d'avance.
 
Re : Priorité sur opérateur logique or et and

Bonsoir airone784

Peut être dans ce style?

if textbox1 <> "" and checkbox13=true then
commandbutton4.enabled=true
elseif
checkbox13=true and label11>0then
commandbutton4.enabled=true
else
commandbutton4.enabled=false
endif
endif

A+
 
Dernière édition:
Re : Priorité sur opérateur logique or et and

Bonsoir.
Les valeur des Checkbox sont déjà des Boolean. Il est donc absurde et inutile de les comparer à True.
En l'absence de parenthèses le And est prioritaire sur le Or.
Je souhaiterais que la propriété enabled passe à true si (combobox1<>"" et checkbox13=true) ou si (checkbox13=true et label11>0) ou si (checkbox13=true and combobox1<>"" and label11>0) mais je n'arrive pas à combiner les 2 conditions.
Ça revient à :
VB:
CommandButton4.Enabled = CommandButton4.Enabled Or CheckBox13 And (ComboBox1 <> "" Or Label11 > 0)
Cordialement.

P.S. Ah mais: il n'a pas dit que la propriété Enabled devait repasser à False si la condition n'est pas remplie ! Si c'est le cas c'est plus simple :
VB:
CommandButton4.Enabled = CheckBox13 And (ComboBox1 <> "" Or Label11 > 0)

Pour plus de sûreté établissez une table de vérité avec toutes les combinaisons des 3 conditions, soit 8 lignes dans lesquelles vous indiquez dans une 4ième colonne comment doit être Enabled.
À +
 
Dernière édition:
Re : Priorité sur opérateur logique or et and

Salut Dranreb,

Code:
CommandButton4.Enabled = CheckBox13 And (ComboBox1 <> "" Or Label11 > 0)

ton code fonctionne lorsque je clique la checkbox mais pas si je la remet à false mon bouton reste au statut enabled =true.

Bizarre...
 
Re : Priorité sur opérateur logique or et and

C'est que l'instruction n'est pas exécutée: si elle était exécutée son statut Enabled serait forcément remis à False
Je vous conseille de faire comme moi en général: écrivez une: Private Sub Habiliter()
dans laquelle vous calculerez les propriétés Enabled de tous les contrôles
et vous terminez systématiquement toute les autres autres procédures par :
VB:
Habiliter
End Sub
à moins qu'elles ne finissent par Me.Hide ou Unload Me
À +
 
Re : Priorité sur opérateur logique or et and

bonjour tous🙂🙂🙂🙂
pas si simple que cela
un exemple basique avec seulement la combo & CheckBox
par defaut dans proprietee du CommandButton4 a false

Code:
Private Sub CheckBox13_Click()
es
End Sub
Private Sub ComboBox1_Change()
es
End Sub
Sub es()
CommandButton4.Enabled = IIf((ComboBox1 <> "" And CheckBox13), True, False)
End Sub

par contre il faut savoir ce qui fait changer le label11 attention un label pas d'evenement change ce qui complique un peu la chose
il faudrait mettre un exemple concret de ton pb...
 
Re : Priorité sur opérateur logique or et and

Bonjour à tous (et bises à Laetitia)

Un essai
NB: j'ai du remettre un commandbutton3 pour eviter le bug
Je n'ai pas tout testé : difficile de savoir quant Label11 passe >0
 

Pièces jointes

Re : Priorité sur opérateur logique or et and

rebonjour tous 🙂🙂🙂
salut l'ami pierrejean 🙂🙂🙂 & bises
je viens de regarder le label 11 change quand clic sur CheckBox il incremente
je verrais bien une class pour les 11 premiers CheckBoxs pour simplifier + une var public
je vais voir.... par contre le reste un peu "usine a gaz" son fichier
 
Re : Priorité sur opérateur logique or et and

"USINE A GAZ TOI MEME LAETITIA90".
Je plaisante bien évidemment mais il faut dire que l'exemple est retiré de son contexte donc il y a du code qui sert à rien sans les autres feuilles du classeur.
C'est quoi qui est usine à gaz sinon???

😉
 
Re : Priorité sur opérateur logique or et and

Me voila rentré. Je viens de tester PierreJean, mais dans ton exemple ton code fait l'inverse. Si j'ai choisi un nom et que je rentre un mot de passe, le CB4 passe en enabled =false.
Il faut que soit la textbox3 soit remplie, soit une des checkbox soit cochées pour que le CB4 passe enabled =true.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour