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

TextBox - activer touche Enter

12 réponses
Avatar
j-pascal
Bonjour,

J'ai un TextBox dans lequel j'entre un MdP (avec des étoiles :o) ) ...
J'ai créé un bouton "Ok", mais ...
Si j'entre le MdP et que je tape sur la touche "Enter", c'est le bouton "Ok"
qui se sélectionne (et qu'il faut donc que je clique ensuite ...).

Question : Est-il possible de valider le texte saisi dans un TextBox, sans
passer par le bouton "Ok" ?

Merci ;-)

--
Cordialement @+
JP

2 réponses

1 2
Avatar
j-pascal
Bonsoir Stéphane,

Dim témoin

témoin est variant puisque le type n'est pas indiqué

il est plus lourd mais peut s'accomoder de tout contenu!

témoin=true

on lui affecte un booleen mais il reste un variant

Pour savoir dans chaque cas et vérifier
Affiche le volet Expion


Jamais utilisé ! J'ai fait un essai avec une macro toute simple :

Sub essai ()
dim toto
toto = [a1].value
msgbox toto
End sub

Je vois que la fenêtre espion affiche Variant/ String. J'en conclue que je
dois inscrire :
dim toto as string

C'est bien cela ?

dim zaza as integer

Si je conserve "dim zaza" et que je mets zaza dans la fenêtre espion,
j'obtiens "Variant" !!
Pourtant "Integer" est beaucoup moins gourmand que "Variant" !

Je pense que je n'ai pas bien compris l'utilisation de la fenêtre "espion" !

Je regrette de ne pas savoir utiliser les différentes options d'aide à ma
disposition ... Le seul truc que j'utilise c'est "commenter un bloc" ! Ca me
rend service, mais c'est maigre !

@+ ?

JP
et colles y une variable
puis execute le code en mode pas à pas tu sauras de quel type elle est.

Cordialement.

lSteph



Bonjour,

Je vois que ton code est quelque peu différent du mien (mes tests étaient
apparemment un peu lourds ;-) ).

"témoin" est de quel type ? Byte ?

J'ai ajouté un bout de code pour sortir car si le MdP est erroné et que
je clique sur Annuler (ou sur la croix) le fichier s'ouvre quand même !

Le tout est ici :

'----------------------------------------
Dim témoin
Private Sub Bouton_Ok_Click()
If TextBox1.Value = "0000" Then
témoin = True
Unload Me
Else
If MsgBox("Code erroné !", vbRetryCancel) = vbRetry Then
Me.TextBox1 = ""
Me.TextBox1.SetFocus
Else
témoin = True
Unload Me
'------------------Application.EnableCancelKey = xlDisabled
On Error GoTo fin
MsgBox "Terminé !"
fin:
Application.EnableEvents = False

ThisWorkbook.Close True
Exit Sub '18/08
'-------------------------
End If
End If
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = Not témoin
End Sub
'--------------------------------------------------

Bon dimanche,

JP
"JB" a écrit dans le message de news:

Bonjour,

Dim témoin
Private Sub B_Ok_Click()
If TextBox1.Value = "0000" Then
témoin = True
Unload Me
Else
If MsgBox("Code erroné !", vbRetryCancel) = vbRetry Then
Me.TextBox1 = ""
Me.TextBox1.SetFocus
Else
témoin = True
Unload Me
End If
End If
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As
Integer)
Cancel = Not témoin
End Sub

JB


On 2 sep, 01:05, "j-pascal" wrote:
Bonjour,

Merci, c'est parfait !

Néanmoins, je viens de me rendre compte que si on clique sur la petite
croix
en haut à droite du UserForm, ça shunte le mot de passe et ça lance la
macro
!
Peut-on inhiber ce clic ?

Le code de mon UF :
'--------------------------------------------
Private Sub Bouton_Ok_Click()

MotdePasse = TextBox1.Value

If MotdePasse <> "0000" Then 'modif 30/08
Unload MenuMdP
réponse6 = MsgBox("Code erroné !", vbRetryCancel)

If réponse6 = vbRetry Then '(l'utilisateur recommence)
Unload MenuMdP
MenuMdP.Show
Else
Application.EnableCancelKey = xlDisabled
On Error GoTo fin
MsgBox "Terminé !"
fin:
Application.EnableEvents = False

ThisWorkbook.Close True
Exit Sub '18/08
End If
End If

Unload MenuMdP
End Sub
'------------------------------------------------

@+ ?

JP
"JB" a écrit dans le message de news:

Bonjour,

Dans la propriété Default du bouton, spécifier True

JBhttp://boisgontierj.free.fr/

On 1 sep, 10:20, "j-pascal" wrote:



Bonjour,

J'ai un TextBox dans lequel j'entre un MdP (avec des étoiles :o) ) ...
J'ai créé un bouton "Ok", mais ...
Si j'entre le MdP et que je tape sur la touche "Enter", c'est le
bouton
"Ok"
qui se sélectionne (et qu'il faut donc que je clique ensuite ...).

Question : Est-il possible de valider le texte saisi dans un
TextBox, > sans

passer par le bouton "Ok" ?

Merci ;-)

--
Cordialement @+
JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -








Avatar
j-pascal
Re,

"LSteph" a écrit dans le message de news:
%
Bonsoir,

Il me semble que dans ce cas il convient de mettre

Dim témoin as boolean

Sinon témoin est par défaut un variant

que VBA sait parfaitement interprèter si on enlève l'option explicit.
Toutefois il est préférable d'utiliser l'option explicit et de déclarer
la variable et son type.


C'est ce que j'essaye de faire ... mais j'ai souvent des doutes sur la bonne
"déclaration" ;-)

Si certains se sont penché sur cette question pour affirmer que la
différence en terme de performance serait négligeable, il demeure qu'avec
des programmes importants et de nombreuses données à traiter la différence
peut devenir considérable, même si cela reste assez peu important il est
vrai au regard de la puissance de certains ordinateurs.

En revanche, prendre l'habitude de le faire, oblige à considérer à chaque
fois le type de variable utilisé et outre de finir par savoir ce qu'on
fait et ce qu'on utilise permet une mise au point et une relecture du code
bien plus aisée.


C'est bien noté !

Merci,

JP

Cordialement.

lSteph

Bonsoir,

Témoin est du type booléen.

Témoin=True

JB


On 2 sep, 11:28, "j-pascal" wrote:
Bonjour,

Je vois que ton code est quelque peu différent du mien (mes tests
étaient
apparemment un peu lourds ;-) ).

"témoin" est de quel type ? Byte ?

J'ai ajouté un bout de code pour sortir car si le MdP est erroné et que
je
clique sur Annuler (ou sur la croix) le fichier s'ouvre quand même !

Le tout est ici :

'----------------------------------------
Dim témoin
Private Sub Bouton_Ok_Click()
If TextBox1.Value = "0000" Then
témoin = True
Unload Me
Else
If MsgBox("Code erroné !", vbRetryCancel) = vbRetry Then
Me.TextBox1 = ""
Me.TextBox1.SetFocus
Else
témoin = True
Unload Me
'------------------Application.EnableCancelKey = xlDisabled
On Error GoTo fin
MsgBox "Terminé !"
fin:
Application.EnableEvents = False

ThisWorkbook.Close True
Exit Sub '18/08
'-------------------------
End If
End If
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = Not témoin
End Sub
'--------------------------------------------------

Bon dimanche,

JP
"JB" a écrit dans le message de news:

Bonjour,

Dim témoin
Private Sub B_Ok_Click()
If TextBox1.Value = "0000" Then
témoin = True
Unload Me
Else
If MsgBox("Code erroné !", vbRetryCancel) = vbRetry Then
Me.TextBox1 = ""
Me.TextBox1.SetFocus
Else
témoin = True
Unload Me
End If
End If
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As
Integer)
Cancel = Not témoin
End Sub

JB

On 2 sep, 01:05, "j-pascal" wrote:



Bonjour,
Merci, c'est parfait !
Néanmoins, je viens de me rendre compte que si on clique sur la petite
croix
en haut à droite du UserForm, ça shunte le mot de passe et ça lance la
macro
!
Peut-on inhiber ce clic ?
Le code de mon UF :
'--------------------------------------------
Private Sub Bouton_Ok_Click()
MotdePasse = TextBox1.Value
If MotdePasse <> "0000" Then 'modif 30/08
Unload MenuMdP
réponse6 = MsgBox("Code erroné !", vbRetryCancel)
If réponse6 = vbRetry Then '(l'utilisateur recommence)
Unload MenuMdP
MenuMdP.Show
Else
Application.EnableCancelKey = xlDisabled
On Error GoTo fin
MsgBox "Terminé !"
fin:
Application.EnableEvents = False
ThisWorkbook.Close True
Exit Sub '18/08
End If
End If
Unload MenuMdP
End Sub
'------------------------------------------------
@+ ?
JP
"JB" a écrit dans le message de news:

Bonjour,
Dans la propriété Default du bouton, spécifier True
JBhttp://boisgontierj.free.fr/
On 1 sep, 10:20, "j-pascal" wrote:
Bonjour,
J'ai un TextBox dans lequel j'entre un MdP (avec des étoiles :o) ) ...
J'ai créé un bouton "Ok", mais ...
Si j'entre le MdP et que je tape sur la touche "Enter", c'est le
bouton
"Ok"
qui se sélectionne (et qu'il faut donc que je clique ensuite ...).
Question : Est-il possible de valider le texte saisi dans un TextBox,
sans
passer par le bouton "Ok" ?
Merci ;-)
--
Cordialement @+
JP- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des

messages précédents -
- Afficher le texte des messages précédents -










1 2