[VBA] Userform - Choisir le textbox qui affichera une donnée

Bonjour le forum,

Une fois de plus j'aurai besoin d'un petit coup de pouce de votre part

Mon objectif est le suivant :

J'ai trois Textbox dans mon userform ainsi qu'un pavé numérique. Je souhaiterai dans un premier temps sélectionner (en cliquant simplement dedans) le textbox qui m'intéresse puis d'y insérer une donnée numérique que je choisirai à l'aide de mon pavé numérique.

Le problème c'est que j'ai beau sélectionné un textbox, dès lors que je presse un bouton de mon pavé numérique, le textbox est désélectionné.

Existe t-il un code qui permet de dire : insère moi la donnée numérique dans le textbox "actif" ?

J'ai évidemment déjà réfléchi a la question et j'ai trouvé une "alternative" via la gestion de couleur.

Je vous laisse découvrir cette alternative dans le fichier ci-joint.

Ce fichier comporte deux boutons :

  • Le premier affichera le Useform dénudé de tout code (Le Userform qui vous est destiné si jamais vous avez une idée de codification )
  • Le second affichera le Userform avec lequel je travaille actuellement.

Je sais bien que ce dernier fonctionne très bien mais je souhaiterai quand même savoir s'il n'y a pas un chemin plus simple pour ce genre de souhait.

D'avance je vous remercie pour votre aide !

79excel-pratique.xlsm (31.70 Ko)

Bonjour,

Avant toute chose, toutes mes félicitations pour ta solution très pertinente ... et très efficace ...

Il n'existe pas une solution beaucoup plus simple à la question que tu poses ...

Je ne crois même pas que tu aies grand-chose à gagner à passer par une voie plus "classique" :

1. Définir l'index du contrôle qui a le focus

2. Identifier le contrôle utilisé

3. Gérer les évènements MouseDown et MouseUp

4. Gérer les clicks sur les 9 boutons

Sans compter qu'avec ta solution, l'utilisateur a visuellement une aide ...

Bonjour James,

Merci pour tes compliments ^^ !

C'est quand même fou qu'Excel ne propose pas une telle fonctionnalité... et que l'on soit obligé de "contourner" ce manque...

par contre, je dois t'avouer que je ne comprends pas toute sa solution ... (Je suis autodidacte ... ^^)

1. Définir l'index de ton contrôle

=> Tu parles ici de la propriété Tabindex ?

2. Identifier le contrôle utilisé

=> Tu sous-entends la propriété NAME du controle ?

3. Gérer les événements MouseDown et MouseUp

=> Je dois t'avouer que je n'ai jamais utilisé ces événements du fait que je ne sais pas à quoi ils servent ... :/

4. Gérer les clics des 9 boutons.

=> Ca je pense pouvoir faire

Re,

Tu as parfaitement tout compris ...

1. Le TabIndex

2. Le Name

3. Les events MouseDown et MouseUp sont utiles pour suivre les coordonnées à l'écran...et surtout le clavier comme la touche Shift ...

Ok je vais voir ça je te remercie du tuyau !

Rechercher des sujets similaires à "vba userform choisir textbox qui affichera donnee"