XL 2016 VBA : re-focuser sur un controle apres un clic sur un bouton

fred19732

XLDnaute Nouveau
Bonjour,

j'ai essayé plein de trucs, mais je suis quasi persuadé qu’il y a une aide toute simple.

J'ai pas de fichier à montrer, c'est juste une question que je me posais.

situation: j'ai un userform sur lequel il y a 2 text box et un bouton.

en fait je voudrais pouvoir remplir un des deux text box, sans savoir lequel à l'avance, et cliquer sur le bouton qui va faire une action (peu importe) et ensuite revenir sur le textbox sur lequel j'étais et continuer à écrire dedans.

Si quelqu’un a une idée.....

merci d'avance
 
Solution
Re le fil,

Tout d'abord, tu n'es pas "fliqué" mais chaque intervention sur ton post est inscrite puis effacée à la suivante donc à moins de regarder, on ne peut connaître la fréquence de tes passages...

Ce ne sont pas des mercis que l'on réclame (quoique ...il ne faudrait pas non plus oublier la politesse ;) ) mais tout simplement savoir si le problème est résolu ou en voie de l'être ... Il est fréquent que la personne vienne, pose sa question, obtienne sa réponse puis reparte comme elle était venue...

Tu as posé une question, tu as eu une réponse ... Te convient elle ? c'est tout ce que nous désirons savoir à plus forte raison que ta question a été vue par 212 personnes et que donc, la solution est attendue par d'autres ...

patricktoulon

XLDnaute Barbatruc
re
Bonjour
ou dans les propriété du bouton tu met la propriété "takefocusonclick " a false tout simplement
Attention la touche enter déclenche le exit et afterupdate aussi du textbox donc prévois de bloquer la touche enter dans le keydown "if keycode=13 or keycode=9 then keycode=0"
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour fred, Ijito
Oupsssss Bonjour également à Patrick et mapomme

fred ne sait pas lequel des 2 TextBoxs il va renseigner, donc :
VB:
Private Sub CommandButton1_Click()

[A1] = "Bonjour"

    If TextBox1 = "" Then
      TextBox2.SetFocus
ElseIf TextBox2 = "" Then
      TextBox1.SetFocus
End If

End Sub
Ma signature.gif
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
en fait je voudrais pouvoir remplir un des deux text box, sans savoir lequel à l'avance, et cliquer sur le bouton qui va faire une action (peu importe) et ensuite revenir sur le textbox sur lequel j'étais et continuer à écrire dedans.

je répète donc
takefocusonclick a false
a moins que l'action soit d'aller activer une feuille ou je ne sais quoi d'autre le textbox ne perd pas le focus et ca n’empêche pas le bouton de faire ce qu'il a a faire

demonstaration
demo3.gif

et pas besoins de code!!!!!!
 

patricktoulon

XLDnaute Barbatruc
re
@Eric C
à la bonne heure!!! ;)
attention tout de même!!!!!!!!!!! la touche ENTER ou TAB QUI passe au Control suivant dans le tableau (tabindex) !!!!!!!!!!!!!!!!!


la oui le code est utile
VB:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Or KeyCode = 9 Then KeyCode = 0
End Sub
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Or KeyCode = 9 Then KeyCode = 0
End Sub

je dis ça moi j'dis rien hein Eric C ;)
voir meme les fleches aussi j'en suis pas sur :oops:
 

fred19732

XLDnaute Nouveau
en fait je veux pouvoir saisir du texte dans n'importe quelle textbox, mais que en cliquant sur le bouton, je fasse une action et puisse ensuite revenir sur la textbox ou j'écrivais.
par exemple: je saisis 'bonjour en TB2', puis je clique sur le bouton qui fait une action (peut importe quoi), et dès qu'il a fait ca, je continue d'écrire dans tb1, par ex 'ca va?'. ou alors je fais la meme chose dans tb2. l'utilisateur pourra choisir quelle tb il a envie, il faudra qu'il revienne dans celle qu'il a choisi au debut sans être obligé de recliquer dedans.
 

fred19732

XLDnaute Nouveau
Bonjour,

Tout d'abord merci a tous pour vos réponses. JE pense malgré tout que je n'ai pas bien posé le problème.
Vos solutions marchent, mais en fait pas pour ce que je veux.
Je pensais que quelque soit l'action faite par le bouton ca le ferait. mais non.
donc je repose mon problème.

On a donc 2 Textbox (dans mon idée il pourra y en avoir plus), et un bouton (pareil la aussi, j'en aurai peut être plus).

en fait je voudrais pouvoir écrire dans un textbox choisi aléatoirement, puis cliquer sur un bouton, aussi choisi aléatoirement, que ce bouton m'insère un symbole particulier au moyen d'un CHRW(2222) par ex) dans le textbox ou j'aurai commencé à écrire et qu'ensuite je puisse continuer à écrire dans ce même textbox
Note : le terme aléatoire ne signifie pas qu'il y ait une fonction 'aléatoire', c'est l'utilisateur qui aura le choix de sa textbox.

Voila j'espère avoir été un peu plus clair dans ma demande.

Encore un très gros merci à tous ceux qui ont pris et qui prendront le temps de me donner un coup de main.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

fred19732
Une question posée en 2019 et une même question (ou prou) posée en 2020, c'est ce qu'on peut appeler un fil doublon, non? ;)
(même si l'année change)
 

fred19732

XLDnaute Nouveau
Bon alors j'ai trouvé.... merci de votre aide..
En fait,

Les boutons, je les ai mis en takefocusonclick a false
Puis sur chaque bouton, j'ai mis le code
sub but1_click
activecontrol=activecontrol & CHRW(8888), par exemple.
end sub

et avec cela, tout fonctionne comme je le souhaite.

Alors merci a tous pour votre aide. désolé pour le doublons, mais tout est résolu maintenant...

bonne journée à tous
 

Discussions similaires