Rendre le focus à textbox

cathodique

XLDnaute Barbatruc
Bonsoir,

Dans une textbox j'impose un format de saisie (1 Lettre + 9 Chiffres). Dans le cas où cette règle n'est pas remplit, je voudrai avoir un message et que la textbox garde le focus.
Code:
Private Sub TextBox11_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(Me.TextBox11.Value) < 10 Then MsgBox "code erroné": TextBox11.SetFocus
End Sub

Private Sub TextBox11_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case Len(Me.TextBox11.Value)
Case 0  '1er caractere*
If (KeyAscii < 65 Or KeyAscii > 90) And (KeyAscii < 97 Or KeyAscii > 122) Then KeyAscii = 8: beep
Case 1 To 9 'cas 9 caractères
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 8: beep
End Select
End Sub
J'ai fait ceci mais la textbox11 ne reprend pas le focus, il passe à la textbox suivante (la 12).
En vous remerciant par avance.
 

job75

XLDnaute Barbatruc
Re : Rendre le focus à textbox

Bonsoir cathodique,

S'il y a la variable Cancel c'est pour qu'elle serve à quelque chose :

Code:
Private Sub TextBox11_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox11) < 10 Then MsgBox "code erroné": Cancel = True
End Sub
A+
 

cathodique

XLDnaute Barbatruc
Re : Rendre le focus à textbox

Bonsoir Job75,

Merci pour ton aide.
S'il y a la variable Cancel c'est pour qu'elle serve à quelque chose
Il faut être MEGA BARBATRUC pour connaitre autant de choses en VBA.

Je te remercie beaucoup, je pensais qu'elle ne servait que pour un commandButton.

Avec ton code j'ai bien le message mais pas le setfocus, en fait le curseur n'est nulle part, je dois recliquer dans la textbox.

Cordialement,
 

Eric C

XLDnaute Barbatruc
Re : Rendre le focus à textbox

Bonjour le forum
Bonjour cathodique, bonjour job75

Peut être ainsi
Code:
Private Sub TextBox11_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 If Len(TextBox11) < 10 Then MsgBox "code erroné": Cancel = True
 TextBox11.Value = ""
 End Sub
 

laetitia90

XLDnaute Barbatruc
Re : Rendre le focus à textbox

bonjour cathodique, Eric C, Job:):)

comme le dit l'ami Job:) cancel est la pour cela

Code:
Private Sub TextBox11_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox11) < 10 Then: Cancel = 1: MsgBox "code erroné": TextBox11.SetFocus
End Sub
 

cathodique

XLDnaute Barbatruc
Re : Rendre le focus à textbox

Bonjour,

Laetitia90 et Eric, merci beaucoup. Mais ça ne fonctionne pas, je n'ai plus le focus (le curseur clignotant est nulle part), je dois recliquer dans la textbox. j'ai essayé avec tous les événements mais rien de concluant.
 

laetitia90

XLDnaute Barbatruc
Re : Rendre le focus à textbox

re tous Jean-Marcel

c'est le pb... de SendKeys dans beaucoup de ca......s j'evite de l'utiliser au max

autrement il faut detecter la deactivation de la touche et la reactiver par SendKeys
sur 2007 idem pour moi sur 2003 cela est pareil enfin si je me souvient bien
 

Si...

XLDnaute Barbatruc
Re : Rendre le focus à textbox

hello

Si… j’ai bien compris, seul le premier terme est une lettre et la longueur du texte doit être supérieure à 9.
Dans ce cas, ce code suffit largement
Code:
Private Sub TextBox11_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  Cancel = Len(TextBox11) < 10
End Sub

J'ai déjà demandé dans un autre fil sans avoir eu de réponse :
"quel est l'intérêt du Me dans Me.Textbox11" ? Merci à la personne qui me le dira.
 

Pièces jointes

  • TextBox codée (UsF).xls
    42.5 KB · Affichages: 24

cathodique

XLDnaute Barbatruc
[RESOLU] Rendre le focus à textbox

Bonjour,

Je vous remercie tous autant que vous êtes. Les 2 dernières propositions sont bonnes (celle de Si et Jean-Marcel).Je préfère celle de Jean car elle sélectionne le texte à modifier.

Merci beaucoup. Bon week-end et à l'occasion bonnes fêtes de fin d'année.
 

Si...

XLDnaute Barbatruc
Re : Rendre le focus à textbox

Re

@Si
je ne sais pas si c'est la question ??

En posant cette question imprécise:eek:, je pensais surtout à la fin*...

Merci Jean-Marcel pour cet élément de réponse que, j’avoue, ne pas utiliser.
Il est sans doute appréciable dans un premier temps, mais, par habitude personnelle, je préfère le menu interactif qui apparaît ou pas (faute de frappe) lors de l’écriture du nom - soigneusement choisi au préalable - de l'objet que je veux manipuler.

* tout compte fait, nous sommes confrontés à 2 parties qui se traitent selon nos affinités : écriture et lisibilité d’un code. Pour cette dernière, j’ai tendance à éliminer à la fin tout ce qui me semble inutile dans le déroulement de la procédure. Ce n’est qu’un point de vue personnel d’un lecteur !
 

Discussions similaires

Statistiques des forums

Discussions
312 298
Messages
2 086 983
Membres
103 419
dernier inscrit
mk29