XL 2010 Conserver le focus d'un TextBox [Résolu par "mapomme"]

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Depuis un CommandButton j'appelle une calculatrice.
Par défaut, la calculatrice s'affiche dans le coin inférieur droit de l'écran. Son 1er TextBox est sélectionné pour y entrer une donnée.
Si je reclique sur le CommandButton, la calculatrice se positionne au milieu de l'écran. Si je reclique sur le CommandButton, la calculatrice revient dans le coin inférieur droit de l'écran, et ainsi de suite.
Je voudrais que, lorsque je clique sur le CommandButton, le 1er TextBox soit toujours sélectionné.
Enfin, si je rentre une bourde dans ce TextBox (ex. : 1/0), un message averti l'utilisateur de l'incohérence. Je voudrais, après avoir refermé la boîte, que le 1er TextBox de la calculatrice soit automatiquement sélectionné.
Comment s'y prendre ?
 

Pièces jointes

  • USF.xlsm
    440.1 KB · Affichages: 57
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Bonjour Alza,

Je ne suis pas convaincu que ce soit dû au fait que l'USF est non modal. Du reste, dans la situation inverse, le bouton serait alors tout simplement bloqué et l'USF condamné à s'afficher uniquement dans le coin inférieur droit de l'écran, ce qui perdrait tout intérêt.
Je pense qu'il doit y avoir une solution à ce truc-là.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir Magic_Doctor, à tous,

Un essai un peu tarabiscoté o_O.

J'ai utilisé un TextBox "bidon" nommé txtBidon. Ce contrôle figure dans le UserForm mais on ne le voit pas. Il faut élargir le UserForm pour l'apercevoir.

J'ai utilisé ce contrôle comme un contrôle auxilliaire qu'on sélectionne avant de sélectionner TextBox1.

Dans tout le code, j'ai remplacé TextBox1.SetFocus par l'appel à la procédure DansTextBox1():
VB:
Sub DansTextBox1()
  With USF_Calculatrice
    .txtBidon.SetFocus
    .TextBox1.SetFocus
  End With
End Sub


J'ai également modifié la procédure évènementielle Private Sub TextBox1_KeyDown:
VB:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        KeyCode = 0         ' ligne ajoutée
        ControlClick 11
    End If
    DansTextBox1
End Sub
 

Pièces jointes

  • Magic_Doctor- USF- v1.xlsm
    296.4 KB · Affichages: 39

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 949
Membres
101 851
dernier inscrit
vaiata