Sélectionner automatiquement le contenu d’une zone de texte (TextBox)
Comment faire en sorte que le contenu d’une zone de texte soit automatiquement sélectionné lorsqu’on clique dans cette zone ?
Le problème
Sur un formulaire, lorsque vous déplacez via la touche Tabulation
, le texte de chaque TextBox
est automatiquement sélectionné (il passe en fond noir). Par contre, ce n’est pas le cas lorsque vous cliquez à la souris dans une zone de texte. Et pourtant ce serait parfois pratique !
La solution
Recopiez ce tout petit bout de code dans un module standard de votre base de données :
1 2 3 4 5 6 7 8 |
' --- ' SELECTION DU CONTENU ENTIER D'UNE ZONE DE TEXTE ' --- ' Sub SelectionTexte(txt As Access.TextBox) txt.SelStart = 0 txt.SelLength = Len(txt.Text) End Sub |
Ensuite, pour chaque zone de texte concernée :
- Faites apparaître les propriétés de la zone de texte, onglet Événement.
- Cliquez sur les points de suspension à droite de l’événement
Sur clic
. - Choisissez Générateur de code.
- Faites en sorte que l’événement ressemble à ça :
1 2 3 |
Private Sub Nom_Click() SelectionTexte Me.Nom End Sub |
Bien sûr, vous changez le nom de la TextBox
en fonction de votre formulaire. 😉 Et vous reproduisez la méthode pour chaque TextBox
…
Bonjour,
J’aimerais faire la même chose mais pour un objet excel dans lequel du texte est écrit.
Merci.
Quel type d’objet Excel ?
Nanille > Pas directement. Mais comme je l’ai dit plus haut, pour vider une liste, il faut lui donner sa valeur par défaut (c’est en principe fait automatiquement quand on se positionne sur un nouvel enregistrement). A moins que tes listes soient des listes indépendantes (mention « Indépendant » s’affichant en mode Création) ?
Salut Hervé,
Si j’ai bien compris, pas moyen de sélectionner mon texte au clic dans une listBox à cause de la réinitialisation ?
Tant pis on effacera ce qu’il y a dans le cadre « à la main ».
Merci quand même beaucoup pour ton aide.
Nanille > Effectivement, ça ne marchera pas sur une
ListBox
. Pour réinitialiser une liste déroulante, il faut lui donner sa valeur initiale :Me.NomDeLaListe = xy
z (oùxyz
est la valeur par défaut de la liste).Salut,
Cela fonctionne parfaitement pour une zone de texte mais cela ne fonctionne pas pour mes listes déroulantes, j’ai bien essayé de changer le « TextBox », mais je n’ai pas trouvé par quoi le remplacer pour que cela puisse fonctionner sur mes listes déroulantes.
Merci encore