Sélectionner une partie d'un texte d'une textbox

Bonjour,

J'ai une textbox qui contient un texte et je voudrais que, lorsque je clique dessus avec ma souris ou que j'entre dedans avec une tabulation ou la touche entrée , les deux premiers caractères de mon texte soient sélectionnés (= surlignés en bleu).

J'ai un code qui fonctionne pour le clic sur ma textbox mais pas pour entrer dans la textbox avec avec une tabulation ou entrée. J'ai essayé avec Enter mais rien ne bouge ...

Code qui fonctionne lors d'un clic mais pas lors d'une tab ou de 'lutilisation de la touche entrée :

Private Sub TB2_F_Essai_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

TB2_F_Essai.SelStart = 0
TB2_F_Essai.SelLength = 2

End Sub

Code qui ne fonctionne pas du tout :

Private Sub TB2_F_Essai_Enter()

TB2_F_Essai.SetFocus
TB2_F_Essai.SelStart = 0
TB2_F_Essai.SelLength = 2

End Sub

Merci pour votre aide ;)

Bonsoir,

Ce que vous pouvez penser : J'appuis sur Tab pour entrer dans le TextBox, du coup je relâche cette touche, du coup j'intercepte le KeyUp !

Private Sub TB2_F_Essai_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    TB2_F_Essai.SelStart = 0
    TB2_F_Essai.SelLength = 2
End Sub

Ceci devrait marcher avec "Entrée" car là aussi la touche va remonter...

@ bientôt

LouReeD

Bonjour LouReeD,

Effectivement ça fonctionne mais du coup ça me fait ça pour toutes les touches du clavier ...

En fait, il s'agit d'une date dans la textbox au format jj/mm/aaaa qui est celle du jour au moment de l'initialisation.

Si l'utilisateur clique sur la date ou se met sur la date en utilisant Tab ou Entrée, cela veut dire qu'il souhaite changer la date qui est automatiquement inscrite.

Pour lui faire gagner du temps en la changeant rapidement, je veux que les deux chiffres du jour jj soient sélectionnés pour qu'il tape directement les bons, plutôt que de resaisir la date complètement.

Merci et bonne journée

Vinci-Binci

J'ai essayé ça mais ça ne donne rien :

Private Sub TB2_F_Essai_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii = 11 Or KeyAscii = 13 Then
TB2_F_Essai.SelStart = 0
TB2_F_Essai.SelLength = 2
End If

End Sub

11 pour tabulation et 13 pour entrée

Bonjour,

Je dirais que c'est le principe...

@ bientôt

LouReeD

Bonjour,

Peut-être que le code que j'ai écris dans mon poste avec l'événement Textbox.Enter ne fonctionne pas après avoir fait tabulation ou entrée, parce que la sélection se fait automatiquement sur tout le texte lorsque la textbox a le focus après une tabulation ou entrée.

Private Sub TB2_F_Essai_Enter()

TB2_F_Essai.SelStart = 0
TB2_F_Essai.SelLength = 2
TB2_F_Essai.SetFocus

End Sub

Comment pourrais-je désactiver la sélection automatique de mon texte après une tabulation (exemple avec l'image ci-dessous) ?

sans titre

Bonne journée !

Bonjour,

le code fonctionnel qui test le KeyCode utilisé pour entrer dans le textBox :

Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 9 Or KeyCode = 13 Then
        TextBox2.SelStart = 0
        TextBox2.SelLength = 2
    End If
End Sub

@ bientôt

LouReeD

Super ça fonctionne !

Par contre, c'est un détail, mais quand je fais tab et arrive sur ma textbox, la sélection est totale, puis se fait bien comme prévu sur les deux premiers caractères de ma textbox. Y-a-t'il un moyen d'éviter cela ? Je voudrais que direct, la sélection soit sur les deux premiers caractères.

Merci beaucoup !! :)

Comme vous l'avez bien dit, le fait d'entrer dans la TextBox cela active la sélection du texte si cette dernière est non-vide, c'est natif du contrôle je pense

Après le code réduit cette sélection aux deux premiers caractères...

@ bientôt

LouReeD

Rechercher des sujets similaires à "selectionner partie texte textbox"