VBA: Sélectionner tout le texte d'un Textbox

  • Initiateur de la discussion Initiateur de la discussion KTRD
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

KTRD

Guest
Bonjour à tous,

Cela fait quelques temps déjà que je butte sur un pb qui me semblait simple au premier abord:
Sous excel 97, comment sélectionner tout le texte d'un contrôle de type textbox quand l'utilisateur clique sur ce dernier?

J'ai essayé l'évènement Enter associé au Textbox
mais sans succès. Il doit y avoir une histoire de focus ou autre car la procédure SelectText fonctionne quand je l'appelle depuis un bouton de commande avec le bon argument....

Code:
Private Sub TextBox1_Enter()
    SelectText (Me.ActiveControl.Name)
End Sub

Private Sub CommandButton1_Click()
    SelectText ('TextBox1')
End Sub

Sub SelectText(TheControl As String)
    With Me.Controls(TheControl)
        .SelStart = 0
        .SelLength = Len(Me.Controls(TheControl).Value)
        .SetFocus
    End With
End Sub

Dans l'attente de vos lumières.
Cordialement.

KTRD
 
Merci ziopizza pour ta contribution rapide,

Cependant ma feuille compte 15 textbox à remplir individuellement.
Or le code que tu proposes permet de sélectionner le texte du textbox1 à l'ouverture de la feuille.
mais lors d'un changement de textbox avec la souris, il ne fonctionne plus.

Aurais tu une autre solution?

Cordialement.
KTRD
 
Bonsoir ZioPizza, KTRD, le Forum

Je ne sais pas, mais j'ai testé ceci :

1 UserForm avec 5 TextBox dedans, (TextBox1, TextBox2... TextBox5)

Et ce Code :

Option Explicit

Private Sub UserForm_Initialize()
Dim i As Byte

For i = 1 To 5
    Me.Controls('TextBox' & i) = 'Test de Texte'
Next

End Sub

Private Sub TextBox1_Enter()
    SelectText (Me.ActiveControl.Name)
End Sub

Private Sub CommandButton1_Click()
    SelectText ('TextBox1')
End Sub

Sub SelectText(TheControl As String)
   
With Me.Controls(TheControl)
        .SelStart = 0
        .SelLength = Len(Me.Controls(TheControl).Value)
        .SetFocus
   
End With
End Sub


Celà fonctionne très bien KTRD... D'ailleurs 'TheControl' ça me dit quelque chose comme nom de Variable 😉

Bonne Soirée
[ol]@+Thierry[/ol]
 
Bonsoir _Thierry

Je viens de refaire le test avec ton code mais j'ai toujours le même problème.
A savoir:
le commandutton1 permet de sélectionner le texte sans Pb.
En revanche, le texte n'est pas sélectionné si je clique dans le textbox1.

Avec quelle version d'XL as tu testé le tout? je suis sous XL 97, peut être devrais je essayer de sous une version postérieure d'XL?

En ce qui concerne le nom de TheControl, il est vrai que j'ai beaucoup appris en lisant ce forum et que j'ai repris les automatismes, manière de penser ou de rédiger de cerains d'entre vous...
B)

KTRD
 
Bonjour ZioPizza, KTRD, le Forum


J'ai testé hier sous Excel 2002 et ce matin sous 2000... Je lance le UserForm et je me déplace entre les TextBox avec la touche de Tabulation... Mais je viens de me rendre compte qui même si je ne mets aucun code la sélection se fait naturellement !!! lol

Sorry, je n'avais pas approffondi avec un déplacement à la souris ! arf !!!

Désolé ! Bon Courage et bonne journée
[ol]@+Thierry[/ol]


PS j'ai testé avec
Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
SelectText (Me.ActiveControl.Name)
End Sub

Cà le fait mais c'est très barbatruc ça encore !
 
Bonjour KTRD et le Forum,

Essaye ce code
Private Sub UserForm_Activate()

Me.TextBox1.SetFocus
Me.TextBox1.SelStart = 0
Me.TextBox1.SelLength = Len(Me.TextBox1)
End Sub
Salut
Yves
Ça ne marche pas chez moi
Ci-dessous mon code
VB:
private sub worksheet_activate()
 me.combo1.setfocus
 me.combo1.selstart=0
 me.combo1.sellength=len(me.combo1)
end sub
Merci de votre aide
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
833
Réponses
4
Affichages
439
Réponses
4
Affichages
1 K
Retour