Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Msg Box associé à une TextBox s'affichant trop tôt

7 réponses
Avatar
Anonyme
Bonjour,

Je souhaite créer un formulaire. Pour cela, avec l'aide de Word j'ai placé des zones de texte (contrôle activeX). Je souhaiterai qu'un message s'affiche dans certains cas et notamment si le salaire indiqué est inférieur au SMIC Brut mensuel. J'ai réussi à coder pour cela ce code :

Private Sub TextBox21_Change()
If TextBox21.Value < 1466.62 Then
MsgBox "e;Attention ! Salaire en dessous du SMIC !"e;, 48, "e;Attention !"e;
End If
End Sub

Le problème est que désormais, le message s'affiche dès que le moindre chiffre est tapé puisqu'il est nécessairement inférieur à 1466.62.
Je souhaiterais donc savoir s'il est possible de retarder l'apparition du MsgBox éventuellement à l'appui sur la touche Enter, mais sans avoir à créer un CommandButton et sans passer par un UserForm qui enlèverait de la lisibilité au formulaire.

J'espère avoir été claire,
Merci d'avance

7 réponses

Avatar
Geo
Bonjour
Essayez en remplaçant Change par LostFocus
Private Sub TextBox21_LostFocus()
Avatar
Anonyme
Le vendredi 12 Février 2016 à 12:50 par Merida :
Bonjour,

Je souhaite créer un formulaire. Pour cela, avec l'aide de Word j'ai
placé des zones de texte (contrôle activeX). Je souhaiterai qu'un
message s'affiche dans certains cas et notamment si le salaire indiqué
est inférieur au SMIC Brut mensuel. J'ai réussi à coder
pour cela ce code :

Private Sub TextBox21_Change()
If TextBox21.Value < 1466.62 Then
MsgBox "e;Attention ! Salaire en dessous du SMIC !"e;, 48,
"e;Attention !"e;
End If
End Sub

Le problème est que désormais, le message s'affiche dès
que le moindre chiffre est tapé puisqu'il est nécessairement
inférieur à 1466.62.
Je souhaiterais donc savoir s'il est possible de retarder l'apparition du
MsgBox éventuellement à l'appui sur la touche Enter, mais sans
avoir à créer un CommandButton et sans passer par un UserForm qui
enlèverait de la lisibilité au formulaire.

J'espère avoir été claire,
Merci d'avance


Bonjour,

Tout d'abord merci de votre aide,
J'ai essayé mais cela ne fonctionne pas le MsgBox ne s'affiche plus du tout...
Avatar
Geo
Bonjour

J'ai essayé mais cela ne fonctionne pas le MsgBox ne s'affiche plus du
tout...



Le message devrait s'afficher quand vous cliquez sur autre chose.
C'est le signal que vous avez terminé la saisie de la valeur.
Avatar
Geo
Re

Autre piste : Trouver un autre critère, par exemple attendre d'avoir
tapé 7 caractères ?
Ou le point ?
Avatar
Anonyme
Le vendredi 12 Février 2016 à 12:50 par Merida :
Bonjour,

Je souhaite créer un formulaire. Pour cela, avec l'aide de Word j'ai
placé des zones de texte (contrôle activeX). Je souhaiterai qu'un
message s'affiche dans certains cas et notamment si le salaire indiqué
est inférieur au SMIC Brut mensuel. J'ai réussi à coder
pour cela ce code :

Private Sub TextBox21_Change()
If TextBox21.Value < 1466.62 Then
MsgBox "e;Attention ! Salaire en dessous du SMIC !"e;, 48,
"e;Attention !"e;
End If
End Sub

Le problème est que désormais, le message s'affiche dès
que le moindre chiffre est tapé puisqu'il est nécessairement
inférieur à 1466.62.
Je souhaiterais donc savoir s'il est possible de retarder l'apparition du
MsgBox éventuellement à l'appui sur la touche Enter, mais sans
avoir à créer un CommandButton et sans passer par un UserForm qui
enlèverait de la lisibilité au formulaire.

J'espère avoir été claire,
Merci d'avance


Bonjour,

J'ai réessayé votre premier code avec mon ordi perso et cela fonctionne ! Merci Beaucoup !
Avatar
eddymaue
Géo a raison il faut que tu valides à la sortie du textbox..

l'idéal est de faire ce test à la sortie donc si il y a evenement de
validation comme _valid ou _lostfocus... retourner un booleen false ou
-1

bref avec vfp c'est un jeu d'enfant .... en vba Géo est plus solide que
moi

bonne chance




Merida a pensé très fort :
Bonjour,

Je souhaite créer un formulaire. Pour cela, avec l'aide de Word j'ai placé
des zones de texte (contrôle activeX). Je souhaiterai qu'un message s'affiche
dans certains cas et notamment si le salaire indiqué est inférieur au SMIC
Brut mensuel. J'ai réussi à coder pour cela ce code :

Private Sub TextBox21_Change()
If TextBox21.Value < 1466.62 Then
MsgBox "e;Attention ! Salaire en dessous du SMIC !"e;, 48, "e;Attention !"e;
End If
End Sub

Le problème est que désormais, le message s'affiche dès que le moindre
chiffre est tapé puisqu'il est nécessairement inférieur à 1466.62.
Je souhaiterais donc savoir s'il est possible de retarder l'apparition du
MsgBox éventuellement à l'appui sur la touche Enter, mais sans avoir à créer
un CommandButton et sans passer par un UserForm qui enlèverait de la
lisibilité au formulaire.

J'espère avoir été claire,
Merci d'avance



--
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber...
il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)
Avatar
eddymaue
Essais ça

Private Sub TextBox21_LostFocus()

If TextBox21.Value < 1466.62 Then

MsgBox "e;Attention ! Salaire en dessous du SMIC !"e;, 48, "e;Attention !"e;

Exit sub

End If

--
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber...
il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)