TextBox

Le
jepac
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message s'affiche et
que le focus retourne sur la Textbox - Les messages s'affichent mais le focus
ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Circé
Le #1772877
Bonsoir Jean-Paul,

En ce qui concerne l'obligation de saisir des chiffres, il vaut mieux
que tu utilises l'événement KeyPress... Ainsi l'erreur ne pourra pas se
faire car le message interviendra dès la saisie de la première lettre.
On ajoute un beep pour réveiller ! ;)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr("0123456789", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Beep
MsgBox "Chiffres exclusivement!"
End If

End Sub

Par contre, pour le SetFocus avec l'événement Exit, je ne vois pas trop
comment on peut faire. A la place du SetFocus, tu peux mettre
Cancel= True
mais dans ce cas tu ne pourras pas sortir de la boîte. Donc, à suivre..
Pour l'instant il est trop tard ! ;)

Circé
http://faqword.free.fr

jepac a présenté l'énoncé suivant :
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message s'affiche et
que le focus retourne sur la Textbox - Les messages s'affichent mais le focus
ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub


heureux-oli
Le #1772876
Bonjour,

Pour le SetFocus, essaie de donner le focus à un autre contrôle et ensuite à
ton Textbox.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Circé"
Bonsoir Jean-Paul,

En ce qui concerne l'obligation de saisir des chiffres, il vaut mieux que
tu utilises l'événement KeyPress... Ainsi l'erreur ne pourra pas se faire
car le message interviendra dès la saisie de la première lettre. On ajoute
un beep pour réveiller ! ;)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr("0123456789", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Beep
MsgBox "Chiffres exclusivement!"
End If

End Sub

Par contre, pour le SetFocus avec l'événement Exit, je ne vois pas trop
comment on peut faire. A la place du SetFocus, tu peux mettre
Cancel= True
mais dans ce cas tu ne pourras pas sortir de la boîte. Donc, à suivre..
Pour l'instant il est trop tard ! ;)

Circé
http://faqword.free.fr

jepac a présenté l'énoncé suivant :
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message s'affiche
et que le focus retourne sur la Textbox - Les messages s'affichent mais
le focus ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub






jepac
Le #1772856
Bonsoir et merci à vous deux ( et bonne année par la même occasion)

Pour Circé : j'ai une erreur de compilation au niveau de (KeyAscii).

Pour heureux-oli : rien à faire, je peux donner le focus à un autre contrôle
sans problème mais lorsuqu'à la suite j'essaie de redonner le focus au
contrôle sortant le focus reste au contrôle désign' en premier, voilà comment

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else.........

Merci
Jean-Paul


Bonjour,

Pour le SetFocus, essaie de donner le focus à un autre contrôle et ensuite à
ton Textbox.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Circé"
Bonsoir Jean-Paul,

En ce qui concerne l'obligation de saisir des chiffres, il vaut mieux que
tu utilises l'événement KeyPress... Ainsi l'erreur ne pourra pas se faire
car le message interviendra dès la saisie de la première lettre. On ajoute
un beep pour réveiller ! ;)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr("0123456789", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Beep
MsgBox "Chiffres exclusivement!"
End If

End Sub

Par contre, pour le SetFocus avec l'événement Exit, je ne vois pas trop
comment on peut faire. A la place du SetFocus, tu peux mettre
Cancel= True
mais dans ce cas tu ne pourras pas sortir de la boîte. Donc, à suivre..
Pour l'instant il est trop tard ! ;)

Circé
http://faqword.free.fr

jepac a présenté l'énoncé suivant :
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message s'affiche
et que le focus retourne sur la Textbox - Les messages s'affichent mais
le focus ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub











heureux-oli
Le #1756062
Essaie au lieu de OnExit d'utiliser AfterUpdate.
J'utilise peu de OnExit, si je ne change rien, elle s'exécute quand même,
alors que AfterUpdate ne s'exécute que si il y a changement.


--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"jepac"
Bonsoir et merci à vous deux ( et bonne année par la même occasion)

Pour Circé : j'ai une erreur de compilation au niveau de (KeyAscii).

Pour heureux-oli : rien à faire, je peux donner le focus à un autre
contrôle
sans problème mais lorsuqu'à la suite j'essaie de redonner le focus au
contrôle sortant le focus reste au contrôle désign' en premier, voilà
comment

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else.........

Merci
Jean-Paul


Bonjour,

Pour le SetFocus, essaie de donner le focus à un autre contrôle et
ensuite à
ton Textbox.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Circé"
Bonsoir Jean-Paul,

En ce qui concerne l'obligation de saisir des chiffres, il vaut mieux
que
tu utilises l'événement KeyPress... Ainsi l'erreur ne pourra pas se
faire
car le message interviendra dès la saisie de la première lettre. On
ajoute
un beep pour réveiller ! ;)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr("0123456789", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Beep
MsgBox "Chiffres exclusivement!"
End If

End Sub

Par contre, pour le SetFocus avec l'événement Exit, je ne vois pas trop
comment on peut faire. A la place du SetFocus, tu peux mettre
Cancel= True
mais dans ce cas tu ne pourras pas sortir de la boîte. Donc, à suivre..
Pour l'instant il est trop tard ! ;)

Circé
http://faqword.free.fr

jepac a présenté l'énoncé suivant :
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message
s'affiche
et que le focus retourne sur la Textbox - Les messages s'affichent
mais
le focus ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub













jepac
Le #1756061

Private Sub TextBox1_AfterUpdate()
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else
If Not IsNumeric(Me.TextBox1.Text) Then
Beep
MsgBox "Chiffres exclusivement"
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
End If
End If
End Sub


Essaie au lieu de OnExit d'utiliser AfterUpdate.
J'utilise peu de OnExit, si je ne change rien, elle s'exécute quand même,
alors que AfterUpdate ne s'exécute que si il y a changement.


--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"jepac"
Bonsoir et merci à vous deux ( et bonne année par la même occasion)

Pour Circé : j'ai une erreur de compilation au niveau de (KeyAscii).

Pour heureux-oli : rien à faire, je peux donner le focus à un autre
contrôle
sans problème mais lorsuqu'à la suite j'essaie de redonner le focus au
contrôle sortant le focus reste au contrôle désign' en premier, voilà
comment

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else.........

Merci
Jean-Paul


Bonjour,

Pour le SetFocus, essaie de donner le focus à un autre contrôle et
ensuite à
ton Textbox.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Circé"
Bonsoir Jean-Paul,

En ce qui concerne l'obligation de saisir des chiffres, il vaut mieux
que
tu utilises l'événement KeyPress... Ainsi l'erreur ne pourra pas se
faire
car le message interviendra dès la saisie de la première lettre. On
ajoute
un beep pour réveiller ! ;)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr("0123456789", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Beep
MsgBox "Chiffres exclusivement!"
End If

End Sub

Par contre, pour le SetFocus avec l'événement Exit, je ne vois pas trop
comment on peut faire. A la place du SetFocus, tu peux mettre
Cancel= True
mais dans ce cas tu ne pourras pas sortir de la boîte. Donc, à suivre..
Pour l'instant il est trop tard ! ;)

Circé
http://faqword.free.fr

jepac a présenté l'énoncé suivant :
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message
s'affiche
et que le focus retourne sur la Textbox - Les messages s'affichent
mais
le focus ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub


















heureux-oli
Le #1756060
Sut on second contrôle tu mets


Private Sub TextBox2_Enter()
Me.TextBox1.SetFocus

End Sub
--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"jepac"
Rien n'y fait le focus ne retourne pas à la TextBox1, voici ce qui est

Private Sub TextBox1_AfterUpdate()
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else
If Not IsNumeric(Me.TextBox1.Text) Then
Beep
MsgBox "Chiffres exclusivement"
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
End If
End If
End Sub


Essaie au lieu de OnExit d'utiliser AfterUpdate.
J'utilise peu de OnExit, si je ne change rien, elle s'exécute quand même,
alors que AfterUpdate ne s'exécute que si il y a changement.


--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"jepac" news:

Bonsoir et merci à vous deux ( et bonne année par la même occasion)

Pour Circé : j'ai une erreur de compilation au niveau de (KeyAscii).

Pour heureux-oli : rien à faire, je peux donner le focus à un autre
contrôle
sans problème mais lorsuqu'à la suite j'essaie de redonner le focus au
contrôle sortant le focus reste au contrôle désign' en premier, voilà
comment

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else.........

Merci
Jean-Paul


Bonjour,

Pour le SetFocus, essaie de donner le focus à un autre contrôle et
ensuite à
ton Textbox.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Circé"
Bonsoir Jean-Paul,

En ce qui concerne l'obligation de saisir des chiffres, il vaut
mieux
que
tu utilises l'événement KeyPress... Ainsi l'erreur ne pourra pas se
faire
car le message interviendra dès la saisie de la première lettre. On
ajoute
un beep pour réveiller ! ;)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As
MSForms.ReturnInteger)

If InStr("0123456789", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Beep
MsgBox "Chiffres exclusivement!"
End If

End Sub

Par contre, pour le SetFocus avec l'événement Exit, je ne vois pas
trop
comment on peut faire. A la place du SetFocus, tu peux mettre
Cancel= True
mais dans ce cas tu ne pourras pas sortir de la boîte. Donc, à
suivre..
Pour l'instant il est trop tard ! ;)

Circé
http://faqword.free.fr

jepac a présenté l'énoncé suivant :
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message
s'affiche
et que le focus retourne sur la Textbox - Les messages s'affichent
mais
le focus ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub




















Circé
Le #1756059
Bonjour,

Si tu suis mon idée au moins pour l'obligation de saisir des chiffres,
le problème sera déjà divisé par 2 ! Et de plus ça évite de faire des
fautes de frappe pour rien !

Circé
http://faqword.free.fr

jepac avait soumis l'idée :
Rien n'y fait le focus ne retourne pas à la TextBox1, voici ce qui est écrit
:

Private Sub TextBox1_AfterUpdate()
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else
If Not IsNumeric(Me.TextBox1.Text) Then
Beep
MsgBox "Chiffres exclusivement"
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
End If
End If
End Sub


Essaie au lieu de OnExit d'utiliser AfterUpdate.
J'utilise peu de OnExit, si je ne change rien, elle s'exécute quand même,
alors que AfterUpdate ne s'exécute que si il y a changement.


--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"jepac"
Bonsoir et merci à vous deux ( et bonne année par la même occasion)

Pour Circé : j'ai une erreur de compilation au niveau de (KeyAscii).

Pour heureux-oli : rien à faire, je peux donner le focus à un autre
contrôle
sans problème mais lorsuqu'à la suite j'essaie de redonner le focus au
contrôle sortant le focus reste au contrôle désign' en premier, voilà
comment

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else.........

Merci
Jean-Paul


Bonjour,

Pour le SetFocus, essaie de donner le focus à un autre contrôle et
ensuite à
ton Textbox.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Circé"
Bonsoir Jean-Paul,

En ce qui concerne l'obligation de saisir des chiffres, il vaut mieux
que
tu utilises l'événement KeyPress... Ainsi l'erreur ne pourra pas se
faire
car le message interviendra dès la saisie de la première lettre. On
ajoute
un beep pour réveiller ! ;)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr("0123456789", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Beep
MsgBox "Chiffres exclusivement!"
End If

End Sub

Par contre, pour le SetFocus avec l'événement Exit, je ne vois pas trop
comment on peut faire. A la place du SetFocus, tu peux mettre
Cancel= True
mais dans ce cas tu ne pourras pas sortir de la boîte. Donc, à suivre..
Pour l'instant il est trop tard ! ;)

Circé
http://faqword.free.fr

jepac a présenté l'énoncé suivant :
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message
s'affiche
et que le focus retourne sur la Textbox - Les messages s'affichent
mais
le focus ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub




















jepac
Le #1756058
Merci

Pour l'instant j'ai résolu mon problème de SetFocus en mettant la macro à
l'entrée de la TextBox2 au lieu de la sortie de la TextBox1.
quant à ta macro pour les chiffres j'ai une erreur de compilation au niveau
de (KeyAscii)

Merci
Jean-Paul


Bonjour,

Si tu suis mon idée au moins pour l'obligation de saisir des chiffres,
le problème sera déjà divisé par 2 ! Et de plus ça évite de faire des
fautes de frappe pour rien !

Circé
http://faqword.free.fr

jepac avait soumis l'idée :
Rien n'y fait le focus ne retourne pas à la TextBox1, voici ce qui est écrit
:

Private Sub TextBox1_AfterUpdate()
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else
If Not IsNumeric(Me.TextBox1.Text) Then
Beep
MsgBox "Chiffres exclusivement"
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
End If
End If
End Sub


Essaie au lieu de OnExit d'utiliser AfterUpdate.
J'utilise peu de OnExit, si je ne change rien, elle s'exécute quand même,
alors que AfterUpdate ne s'exécute que si il y a changement.


--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"jepac"
Bonsoir et merci à vous deux ( et bonne année par la même occasion)

Pour Circé : j'ai une erreur de compilation au niveau de (KeyAscii).

Pour heureux-oli : rien à faire, je peux donner le focus à un autre
contrôle
sans problème mais lorsuqu'à la suite j'essaie de redonner le focus au
contrôle sortant le focus reste au contrôle désign' en premier, voilà
comment

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else.........

Merci
Jean-Paul


Bonjour,

Pour le SetFocus, essaie de donner le focus à un autre contrôle et
ensuite à
ton Textbox.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Circé"
Bonsoir Jean-Paul,

En ce qui concerne l'obligation de saisir des chiffres, il vaut mieux
que
tu utilises l'événement KeyPress... Ainsi l'erreur ne pourra pas se
faire
car le message interviendra dès la saisie de la première lettre. On
ajoute
un beep pour réveiller ! ;)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr("0123456789", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Beep
MsgBox "Chiffres exclusivement!"
End If

End Sub

Par contre, pour le SetFocus avec l'événement Exit, je ne vois pas trop
comment on peut faire. A la place du SetFocus, tu peux mettre
Cancel= True
mais dans ce cas tu ne pourras pas sortir de la boîte. Donc, à suivre..
Pour l'instant il est trop tard ! ;)

Circé
http://faqword.free.fr

jepac a présenté l'énoncé suivant :
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message
s'affiche
et que le focus retourne sur la Textbox - Les messages s'affichent
mais
le focus ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub

























heureux-oli
Le #1756057
Malheureusement, avec le code que j'ai ajouté, il faut un contrôle caché.
Si le contrôle est utilisable, on ne peut y entrer.

La solution de Circé pour empêcher la saisie des lettres plus efficace que
le focus.
Mais ne résout pas le problème de la longueur à respecter.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"heureux-oli"
Sur ton second contrôle tu mets


Private Sub TextBox2_Enter()
Me.TextBox1.SetFocus

End Sub
--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"jepac"
Rien n'y fait le focus ne retourne pas à la TextBox1, voici ce qui est

Private Sub TextBox1_AfterUpdate()
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else
If Not IsNumeric(Me.TextBox1.Text) Then
Beep
MsgBox "Chiffres exclusivement"
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
End If
End If
End Sub


Essaie au lieu de OnExit d'utiliser AfterUpdate.
J'utilise peu de OnExit, si je ne change rien, elle s'exécute quand
même,
alors que AfterUpdate ne s'exécute que si il y a changement.


--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"jepac" news:

Bonsoir et merci à vous deux ( et bonne année par la même occasion)

Pour Circé : j'ai une erreur de compilation au niveau de (KeyAscii).

Pour heureux-oli : rien à faire, je peux donner le focus à un autre
contrôle
sans problème mais lorsuqu'à la suite j'essaie de redonner le focus au
contrôle sortant le focus reste au contrôle désign' en premier, voilà
comment

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else.........

Merci
Jean-Paul


Bonjour,

Pour le SetFocus, essaie de donner le focus à un autre contrôle et
ensuite à
ton Textbox.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Circé"
Bonsoir Jean-Paul,

En ce qui concerne l'obligation de saisir des chiffres, il vaut
mieux
que
tu utilises l'événement KeyPress... Ainsi l'erreur ne pourra pas se
faire
car le message interviendra dès la saisie de la première lettre. On
ajoute
un beep pour réveiller ! ;)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As
MSForms.ReturnInteger)

If InStr("0123456789", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Beep
MsgBox "Chiffres exclusivement!"
End If

End Sub

Par contre, pour le SetFocus avec l'événement Exit, je ne vois pas
trop
comment on peut faire. A la place du SetFocus, tu peux mettre
Cancel= True
mais dans ce cas tu ne pourras pas sortir de la boîte. Donc, à
suivre..
Pour l'instant il est trop tard ! ;)

Circé
http://faqword.free.fr

jepac a présenté l'énoncé suivant :
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message
s'affiche
et que le focus retourne sur la Textbox - Les messages s'affichent
mais
le focus ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub
























heureux-oli
Le #1756056
J'ai testé le code de Circè et chez moi il passe.


--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"jepac"
Merci

Pour l'instant j'ai résolu mon problème de SetFocus en mettant la macro à
l'entrée de la TextBox2 au lieu de la sortie de la TextBox1.
quant à ta macro pour les chiffres j'ai une erreur de compilation au
niveau
de (KeyAscii)

Merci
Jean-Paul


Bonjour,

Si tu suis mon idée au moins pour l'obligation de saisir des chiffres,
le problème sera déjà divisé par 2 ! Et de plus ça évite de faire des
fautes de frappe pour rien !

Circé
http://faqword.free.fr

jepac avait soumis l'idée :
Rien n'y fait le focus ne retourne pas à la TextBox1, voici ce qui est
écrit
:

Private Sub TextBox1_AfterUpdate()
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else
If Not IsNumeric(Me.TextBox1.Text) Then
Beep
MsgBox "Chiffres exclusivement"
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
End If
End If
End Sub


Essaie au lieu de OnExit d'utiliser AfterUpdate.
J'utilise peu de OnExit, si je ne change rien, elle s'exécute quand
même,
alors que AfterUpdate ne s'exécute que si il y a changement.


--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"jepac" news:

Bonsoir et merci à vous deux ( et bonne année par la même occasion)

Pour Circé : j'ai une erreur de compilation au niveau de (KeyAscii).

Pour heureux-oli : rien à faire, je peux donner le focus à un autre
contrôle
sans problème mais lorsuqu'à la suite j'essaie de redonner le focus
au
contrôle sortant le focus reste au contrôle désign' en premier, voilà
comment

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox2.SetFocus
Me.TextBox1.SetFocus
Exit Sub
Else.........

Merci
Jean-Paul


Bonjour,

Pour le SetFocus, essaie de donner le focus à un autre contrôle et
ensuite à
ton Textbox.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Circé"
Bonsoir Jean-Paul,

En ce qui concerne l'obligation de saisir des chiffres, il vaut
mieux
que
tu utilises l'événement KeyPress... Ainsi l'erreur ne pourra pas se
faire
car le message interviendra dès la saisie de la première lettre. On
ajoute
un beep pour réveiller ! ;)

Private Sub TextBox1_KeyPress(ByVal KeyAscii As
MSForms.ReturnInteger)

If InStr("0123456789", Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Beep
MsgBox "Chiffres exclusivement!"
End If

End Sub

Par contre, pour le SetFocus avec l'événement Exit, je ne vois pas
trop
comment on peut faire. A la place du SetFocus, tu peux mettre
Cancel= True
mais dans ce cas tu ne pourras pas sortir de la boîte. Donc, à
suivre..
Pour l'instant il est trop tard ! ;)

Circé
http://faqword.free.fr

jepac a présenté l'énoncé suivant :
Bonsoir,

J'ai écrit la macro suivante pour qu'en cas d'erreur un message
s'affiche
et que le focus retourne sur la Textbox - Les messages s'affichent
mais
le focus ne retourne pas sur la TextBox - Pourquoi ?

Merci de votre aide
Jean-Paul

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.TextLength < 10 Then
MsgBox ("Le siren doit être composé de 10 chiffres")
Me.TextBox1.SetFocus
End If
If Not IsNumeric(Me.TextBox1.Text) Then
MsgBox "Chiffres exclusivement"
Me.TextBox1.SetFocus
End If

End Sub



























Publicité
Poster une réponse
Anonyme