0
votes

Comment démarrer le curseur après 3ème caractère de la zone de texte dans userform

Je suis assez nouveau à VBA afin que toute aide serait grandement appréciée.

J'ai un utilisateur qui contient 3 étiquettes et 3 boîtes de texte. 2 des zones de texte (y compris la première activation de l'activation du formulaire) sont vides. Le troisième a 3 caractères pré-remplis. Lorsque l'UserForm commence, je souhaite remplir la première zone de texte comme étant normale, puis lorsque j'éigne dans la deuxième zone de texte, je voudrais que le curseur passe automatiquement à la fin de cette 3 lettres au lieu de mettre en évidence la zone de texte entière. J'ai regardé autour de moi mais ne peut pas sembler trouver quoi que ce soit qui puisse le faire facilement. Pourriez-vous s'il vous plaît laissez-moi savoir où exactement (quel sous) entrer dans ce code dans aussi?

Mon utilisateur est appelé "getbiinfo2" et ma zone de texte s'appelle "nbidtext"

merci!


1 commentaires

Regardez dans la propriété SELSTART DE TEXTBOX CONTROL.


3 Réponses :


2
votes
  1. Sélectionnez la zone de texte.
  2. aller à la propriété (F4).
  3. Faites défiler jusqu'à la recherche d'une propriété Enterfieldbehavior.
  4. Changez-le à 1 - FEGENTERFIELDBEHAVORRECALLSELLECTION.

2 commentaires

C'est exactement ce que je cherchais. Je savais qu'il devait y avoir une solution facile. Merci beaucoup!!


Posté la manière classique via .selstart ,: +)



0
votes

Une alternative simple serait de créer une autre zone de texte pour contenir les trois premiers caractères et d'avoir l'utilisateur entrer les caractères suivants dans une zone de texte distincte. Ensuite, vous pouvez écrire du code qui prendra le contenu des deux et les annexera dans une seule chaîne comme celle-ci:

Dim finalString As String

finalString = TextBox1.Value & TextBox2.Value


0 commentaires

2
votes

L'approche directe est via la zone de texte .selstart propriété; Peut-être que vous pourriez l'appeler via une sous-procédure comme ceci: xxx


0 commentaires