[VBA]Valider UserForm avec la touche Entrée ?

Résolu
lml-mike Messages postés 455 Date d'inscription   Statut Contributeur Dernière intervention   -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai actuellement dans mon classeur excel un userform avec dans ma textbox ce code :

Private Sub nom_client_Change()

If Me.nom_client.Value <> "" Then
    Me.OK.Enabled = True
Else
    Me.OK.Enabled = False
End If

End Sub


Ce que j'aimerais savoir, c'est si c'est possible en complément de ce code, avoir une propriété qui m'appelle directement Me.OK si après avoir saisi mon nom j'appuye sur entrée ?

Merci beaucoup :-)
A voir également:

4 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Tu veux que quand ont tape ENTER dans la texte box tu appel le code qui se trouve dans le Clic du bouton ? Si oui,...
Private Sub nom_client_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        OK_Click
    End If
End Sub

A+
2
lml-mike Messages postés 455 Date d'inscription   Statut Contributeur Dernière intervention   121
 
Le problème c'est que j'ai déjà la propriété nom_client_change affecté a textbox1, cela pose problème d'avoir deux propriétés différentes du même nom, non ?
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
absolument pas.. Colle ce code dans le module de l'UF et tu verra...
et ce ne sont pas des propriétés mais des événements.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Autre..
Remplace
Private Sub nom_client_Change()
    If Me.nom_client.Value <> "" Then
        Me.OK.Enabled = True
    Else
        Me.OK.Enabled = False
    End If
End Sub

par
Private Sub nom_client_Change()
    OK.Enabled = nom_client <> ""
End Sub


C'est plus court o)
le "Me" n'est pas nécessaire, juste quend tu veux faire référence à l'userform...
    Me.ForeColor = XX

0
lml-mike Messages postés 455 Date d'inscription   Statut Contributeur Dernière intervention   121
 
Génial, non seulement tout marche, mais en plus j'ai une astuce d'optimisation de mon code =)

Merci beaucoup pour toutes tes réponses lermite !

Sinon tu connais le KeyCode pour la touche BackSpace ? (la touche effacer quoi :P) ?

P.S.: je recherche un article sur le contrôle de saisie de textbox avec restriction de caractères numériques pour des prix et dates(0123456789./), conversion "." en "," , interdiction du copier/coller, contrôle de la forme JJ/MM/AAAA etc...

Est-ce que tu connais un tutorial complet sur toutes les fonctionnalités disponibles quelque part sur la toile ? J'avais trouvé un dossier super mais j'arrive plus a remettre la main dessus :'( . Merci encore !
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Non, mais ce sont toutes des fonctions qu'il faut créer sois-même, par exemple pour conversion "." en ","
    nom_client = replace(nom_client".",",")

tu colle ça dans le Change et si tu tape un point il serra transformer en virgule.
0