Quoi de plus pénible

bonjour,

Quoi de plus pénible que la longue litanie des :

MsgBox "Vous devez remplir le champ BLABLA avant de valider !"
MsgBox "Vous devez remplir le champ BLUBLU avant de valider !"
MsgBox "Vous devez remplir le champ BLOBLO avant de valider !"

L'exemple ci joint y remédie facilement...

A+

152controlerequis.xlsm (20.00 Ko)

Salut Galopin,

Super ce code Effectivement c'est plus simple quand il y a beaucoup de champs

Par contre, peux-tu me donner quelques explications sur ces deux lignes

Pour la 1ere ligne, c'est la partie après le then que je ne comprends pas.

If Ctrl.Name Like "lbl*" Then Y = Y Or Ctrl.Visible
lbl1.Visible = TextBox1 = ""

Merci d'avance

Jers

Bonjour,

Dans les 2 cas c'est la même explication :

Y est un booléen donc Vrai ou Faux donc on ramène tout à Vrai ou Faux

Prenons la 2ème expression :

lbl1.Visible = TextBox1 = ""

Si TextBox1 est évalué comme "Vide" alors TextBox1 = "" est vrai et lbl.Visible est = Vrai

Si ça peut t'aider à mieux comprendre, on pourrait aussi écrire l'expression avec une parenthèse :

lbl1.Visible = (TextBox1 = "")

Si ce qui est entre parenthèse est vrai alors lbl1.Visible = Vrai...

Dans l'autre expression :

If Ctrl.Name Like "lbl*" Then Y = Y Or Ctrl.Visible

Là encore on pourrait écrire avec une parenthèse si ça peut t'aider à comprendre :

If Ctrl.Name Like "lbl*" Then Y = (Y Or Ctrl.Visible)

Y prend la valeur du contenu de la parenthèse...

C'est la même explication : Y est Vrai ou Faux selon le cheminement dans la boucle For

Tout au début, à l'initialisation Y est Faux

Après le premier passage dans la boucle For si le 1er Ctrl est visible c'est que le TextBox est vide donc Y est Vrai car dans une évaluation logique (Y or Vrai) est évalué comme Vrai : Quel que soit le nombre de Vrai, s'il y a un seul Vrai alors Y or Expression est évalué comme Vrai. Donc tant qu'il y aura un Ctrl.Visible, Y restera Vrai.

Pour t'en convaincre tu peux exécuter cette macro :

Sub test()
Dim Y As Boolean, Resultat As Boolean
Resultat = Y Or Y
MsgBox Resultat

Resultat = Y Or True Or True Or True
MsgBox Resultat
End Sub

Dans le premier MsgBox tous les Y étant Faux (et pour cause !) le résultat est "Faux"

Dans le 2ème Msgbox, Y est toujours Faux mais il y a au moins un Vrai (Quel qu'en soit le nombre) donc le résultat est Vrai...

C'est Logique : Pas Vrai ?

A+

MERCI pour l'explication.

Je ne savais pas que l'on pouvait comme ca se passer des if avec des booleen.

Je vais essayer cela.

A+

Jers

Rechercher des sujets similaires à "quoi penible"