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

SetFocus

3 réponses
Avatar
JPMonnier
Bonjour,
j'ai une suite de zone de texte de M5a à M10a
voici l'extrait du code
Private Sub M5A_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If M5A.Value <> "" Then
If Len(M5A) <> 4 Then
MsgBox "4 chiffres obligatoires"
M5A = ""
M5A.SetFocus
Exit Sub
End If
MC5a = True
Else
MC5a = False
End If
End Sub

Ceci pour chaque TextBox
En mode pas à pas,
Quand je passe sur le M5A.SetFocus,
Il le prend bien et le met bien à rien
Quand je passe sur Exit Sub,
il passe sur le TextBox suivant
qui correspond à l'ordre des TextBox défini dans mon UserForm

Quelqu'un a-t'il une idée ?
Merci d'avance
--
Cordialement
jpmonnier-nospam@neuf.fr

3 réponses

Avatar
JB
Bonjour,

Utiliser Before_Update():

Private Sub TextBox_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If condition Then
MsgBox "Erreur"
Cancel = True
End If
End Sub

JB
http://boisgontierjacques.free.fr/

On 11 déc, 12:27, "JPMonnier" wrote:
Bonjour,
j'ai une suite de zone de texte de M5a à M10a
voici l'extrait du code
Private Sub M5A_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If M5A.Value <> "" Then
  If Len(M5A) <> 4 Then
    MsgBox "4 chiffres obligatoires"
    M5A = ""
    M5A.SetFocus
    Exit Sub
  End If
  MC5a = True
Else
  MC5a = False
End If
End Sub

Ceci pour chaque TextBox
En mode pas à pas,
Quand je passe sur le M5A.SetFocus,
Il le prend bien et le met bien à rien
Quand je passe sur Exit Sub,
il passe sur le TextBox suivant
qui correspond à l'ordre des TextBox défini dans mon UserForm

Quelqu'un a-t'il une idée ?
Merci d'avance
--
Cordialement



Avatar
michdenis
essaie plutôt avec cet événement des textbox

Private Sub M5A_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

et quand tu ne veux pas sortir du textbox parce qu'il y a une erreur
tu définis Cancel = True
Exit Sub

Tu n'es pas tenu d'inscrire : M5A.SetFocus


"JPMonnier" a écrit dans le message de news:
%
Bonjour,
j'ai une suite de zone de texte de M5a à M10a
voici l'extrait du code
Private Sub M5A_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If M5A.Value <> "" Then
If Len(M5A) <> 4 Then
MsgBox "4 chiffres obligatoires"
M5A = ""
M5A.SetFocus
Exit Sub
End If
MC5a = True
Else
MC5a = False
End If
End Sub

Ceci pour chaque TextBox
En mode pas à pas,
Quand je passe sur le M5A.SetFocus,
Il le prend bien et le met bien à rien
Quand je passe sur Exit Sub,
il passe sur le TextBox suivant
qui correspond à l'ordre des TextBox défini dans mon UserForm

Quelqu'un a-t'il une idée ?
Merci d'avance
--
Cordialement

Avatar
JPMonnier
Merci beaucoup
Pour la précision et le temps de réponse

--
Cordialement

"JPMonnier" a écrit dans le message de
news:%
Bonjour,
j'ai une suite de zone de texte de M5a à M10a
voici l'extrait du code
Private Sub M5A_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If M5A.Value <> "" Then
If Len(M5A) <> 4 Then
MsgBox "4 chiffres obligatoires"
M5A = ""
M5A.SetFocus
Exit Sub
End If
MC5a = True
Else
MC5a = False
End If
End Sub

Ceci pour chaque TextBox
En mode pas à pas,
Quand je passe sur le M5A.SetFocus,
Il le prend bien et le met bien à rien
Quand je passe sur Exit Sub,
il passe sur le TextBox suivant
qui correspond à l'ordre des TextBox défini dans mon UserForm

Quelqu'un a-t'il une idée ?
Merci d'avance
--
Cordialement