Positionner le curseur clignotant dans une textbox

Bonjour
Dans un formulaire, je souhaite saisir dans 2 textbox le nom et le prénom (TxbNom, TxbPrenom) .
Pour éviter de naviguer entre souris et clavier, je ne mets qu'un seul Optionbouton.
Au clic, la première textbox (TxbNom) apparait avec le curseur clignotant.
Après avoir validé par Entrée, le nom saisi dans la première textbox (TxbNom), la fenêtre(TxbPrenom) apparait à son tour.
Je voudrais que le curseur apparaisse alors dans la seconde textbox (TxbPrenom) pour indiquer à l'opérateur qu'il peut y commencer la saisie.
Dans TxbNom_AfterUpdate(),
TxbPrenom.setFocus.....
........ reste sans effet....

TxbPrenom est pourtant placé en seconde position dans l'ordre de tabulation.

Y a-t-il un moyen de le faire apparaître autrement qu'en y faisant un clic de souris ?

Merci

Bonjour,

166 messages et pas de fichier joint... Adepte de la secte des tireurs de vers de nez ?

A+

Bonjour toutes et tous

coucou Galopin exactly

@Jpmalb est pourquoi mettre directement sur le code du bouton valider le setfocus

si le champ txtnom n'est pas rempli un message (facultatif)+ on reste sur le focus de la textbox Nom, si rempli on affiche la textbox Prénom on garde le focus sur la textbox etc. exemple:

Private Sub CommandButton1_Click()
' btn valider
If Me.TxbNom.Value = "" Then
MsgBox "Veuillez remplir le champ NOM"
Me.TxbNom.SetFocus
Else
' si c'rest ok on redimensionne l'usf1 ici c'est le Height qui est important
UserForm1.Width = "330,75"
UserForm1.Height = "150"
Me.TxbPrenom.Visible = True
TxbPrenom.SetFocus
Me.Label2.Visible = True
End If
End Sub

Private Sub CommandButton2_Click()
' btn annuler
Unload Me
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
' à l'initialise de l'userform on regarde les dimensions
' Width et Height dans sa propriété de l'usf1
UserForm1.Width = "330,75"
UserForm1.Height = "80"
End Sub

ci-joint un exemple basique

crdlt,

André

Merci André13 pour ta réponse.
En appliquant ta méthode, on ne touche pas la souris....et ce, grâce à ta façon de placer la commande Valider après la textbox....

@Galopin01...Rochon ?... je sollicitais simplement une réponse à une question.... L'exemple fourni m'a permis de comprendre pourquoi ça ne fonctionnait pas..

Bonne soirée à tous

Bonsoir…

Salut Dédé, tu aimes jouer à cache-cache ?

Ce sera une autre fois avec moi (je prèfère attraper très vite* la petite souris) !

*peu de lignes de code dans l’adaptation de ton fichier (merci)

J’aurais eu plus tendance, avec autre une utilisation Me à écrire ,

Private Sub UserForm_Initialize()
    Me.Width = 330.75
    Me.Height = 80
End Sub
Private Sub CommandButton1_Click()
    If TxbNom.Value = "" Then
        MsgBox "Veuillez remplir le champ NOM"
        TxbNom.SetFocus
    Else
        Me.Height = 150
        TxbPrenom.Visible = True
        TxbPrenom.SetFocus
        Label2.Visible = True
    End If
End Sub

...je suis un vrai "béotien" ou c'est l' effet Covid ou les deux ...ou autre chose...

je ne comprends pas pourquoi dans le fichier d'André13, le curseur est placé dans la textbox et clignote à l'ouverture de l'userform sans aucune procédure..

s'il vous plait ...?

Re,

je vais essayer d'expliquer au plus simple enfin si, j'y arrive lol!

Private Sub CommandButton1_Click()
' bouton de commande  valider

' si ma textbox Nom est vide = ensuite j'ai
If Me.TxbNom.Value = "" Then

' une boîte à message qui dit : "Veuillez remplir  [...] NOM.
MsgBox "Veuillez remplir le champ NOM"
' c'est grâce  à Set Focus ci-dessous qui garde le focus (parce que je n'ai rien 'dans la textbox NOM)
Me.TxbNom.SetFocus
' c'est le Else qui est important qui quant à lui, si la textbox Nom est remplie
' la suite de la procédure, on affiche l'userform avec sa hauteur et sa longueur
' on rend visible le label visible  et la textbox Prénom visible aussi et on
' garde le focus sur la textbox prénom
Else
UserForm1.Width = "330,75"
UserForm1.Height = "150"
Me.TxbPrenom.Visible = True
TxbPrenom.SetFocus
Me.Label2.Visible = True
' le End If  qui lui Fin de condition qui est important aussi
End If
End Sub
' etc. suite du code 

Private Sub CommandButton2_Click()
' bouton Annuler
' on décharge l'userform1 par Unload Me
Unload Me
End Sub

ma textbox NOM sa propriété est sur TabIndex = 0

ma textbox Prénom sa propriété est sur TabIndex = 1


j'ai mis la com

crdlt,

André

Re …

C’est bien de poser des questions quand on n’a pas la bosse du VBA !

Refusant d’être un Théoricien qui ne franchit pas le pas THEORIE – PRATIQUE, je propose, quand c’est nécessaire, d’utiliser , à chaque fois que l’on travaille sur un formulaire (Userform) d’avoir sous les yeux la fenêtre de ses propriétés.

Avec elle, tu aurais eu un début de réponse sous les yeux.

f4

André (merci) a commencé à compléter ma réponse !

Bien vu le tabindex...merci de votre infinie patience.

bonsoir

Re,

De rien avec plaisir et surtout la prochaine fois n'oublie pas de joindre un classeur même si des erreurs (j'en fait encore tout le temps moi lol)

merci à Ordonc ^^

pour le fun ci-joint avec le label d'Ordonc au passage de la souris sans cliquer dessus

crdlt,

André

Rechercher des sujets similaires à "positionner curseur clignotant textbox"