Salut,
J'ai un code, lancé par un évènement AfterUpdate, pour contrôler la validité d'une adresse mail saisie dans un TextBox. Si l'adresse est invalide, je voudrais que l'opérateur soit contraint ou de saisir une adresse valide ou de supprimer l'adresse invalide. Pour ça le code du TextBox prévoit un SetFocus sur lui même si l'adresse est invalide.
Ca marche en pas à pas, mais dès le End Sub de la procédure AfterUpdate le focus revient sur le contrôle sélectionné par l'opérateur et qui a déclenché l'évènement AfterUpdate.
Comment faire pour que le focus reste sur le TextBox ?
Voilà mon code au cas où :
Private Sub Champ11_AfterUpdate()
'Contrôle de la validité de l'adresse mail
If ActiveControl <> "" Then
Arobase = False
Domaine = False
Pays = False
For i = 1 To Len(Me.Controls("Champ" & vbProfils_Mail))
If Arobase = True And Domaine = True Then Pays = True
If Arobase = False And Mid(ActiveControl, i, 1) = "@" Then Arobase = True
If Arobase = True And Mid(ActiveControl, i, 1) = "." Then Domaine = True
Next i
End If
If Not Pays = False Then
MsgBox "Adresse mail non valide", , "MNav"
Me.Controls("Champ" & vbProfils_Mail).SetFocus
Else: Détection_modification Right(ActiveControl.Name, Len(ActiveControl.Name) - 5)
End If
End Sub
Merci d'avance.
A+
Manu