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

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
 
K

KTRD

Guest
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
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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]
 
K

KTRD

Guest
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
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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 !
 

badraaliou4

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
312 164
Messages
2 085 877
Membres
103 009
dernier inscrit
dede972