OVH Cloud OVH Cloud

VBA UserForm : compteur ?

3 réponses
Avatar
papou
Bonjour à toutes et à tous
Dans un Userform comportant plusieurs dizaines de zones de texte devant être
remplies, je souhaite afficher une information qui donnerait le décompte des
zones restant à remplir (soit donc un compteur).
En dehors de l'utilisation de l'évènement change associé à chaque zone de
texte (un peu lourd quand même !), comment pourrais-je procéder ?
Merci d'avance pour votre aide
Cordialement
Pascal

3 réponses

Avatar
MiB
Bonjour,

Suggestion :

Pour ce genre de problème, voici comment je
procède :

J'index tous mes champs dans un ordre de saisie
Je positionne le curseur dans le premier champs
Sur l'évènement KeyPressed, je traque la touche ENTER
ou/et la touvhe TAB. Si le champs n'est pas rempli
je retourne le curseur dans le champs visé, sinon
je passe au champs suivant ...

Vous pouvez à ce moment faire un décompte des champs
L'évènement KeyPressed renvoie l'index du champs.

Michel
-----Message d'origine-----
Bonjour à toutes et à tous
Dans un Userform comportant plusieurs dizaines de zones
de texte devant être

remplies, je souhaite afficher une information qui
donnerait le décompte des

zones restant à remplir (soit donc un compteur).
En dehors de l'utilisation de l'évènement change associé
à chaque zone de

texte (un peu lourd quand même !), comment pourrais-je
procéder ?

Merci d'avance pour votre aide
Cordialement
Pascal



.



Avatar
papou
Bonjour MiB
Merci pour ta réponse.
Je ne peux pas utiliser cette méthode :
mes zones se situent sur plusieurs pages d'un multipage il est donc très
délicat d'utiliser le tabindex
de plus je ne tiens pas à capter chaque KeyPressed
Je viens de trouver un début de piste sur le site de Misange
(http://www.excelabo.net/xl/controles.htm#moduleclasse)
Mais je ne peux pas facilement adapter parce que les noms de mes contrôles
Textbox sont un peu complexes (mais très explicites pour ce qui me concerne)
Je voudrais pouvoir utiliser dans le code cité en exemple quelquechose comme
Like "TxtPrix*" & I (puisque mes noms commencent tous par cela, suivi d'un
nombre de caractères indéterminé et se terminant tous par un chiffre de 1 à
20), mais je n'y parviens pas.
Merci pour ton aide en tout cas...
Et merci à ceux qui pourront m'aider.
Cordialement
Pascal


"MiB" a écrit dans le message de news:
061101c33f11$e8194530$
Bonjour,

Suggestion :

Pour ce genre de problème, voici comment je
procède :

J'index tous mes champs dans un ordre de saisie
Je positionne le curseur dans le premier champs
Sur l'évènement KeyPressed, je traque la touche ENTER
ou/et la touvhe TAB. Si le champs n'est pas rempli
je retourne le curseur dans le champs visé, sinon
je passe au champs suivant ...

Vous pouvez à ce moment faire un décompte des champs
L'évènement KeyPressed renvoie l'index du champs.

Michel
-----Message d'origine-----
Bonjour à toutes et à tous
Dans un Userform comportant plusieurs dizaines de zones
de texte devant être

remplies, je souhaite afficher une information qui
donnerait le décompte des

zones restant à remplir (soit donc un compteur).
En dehors de l'utilisation de l'évènement change associé
à chaque zone de

texte (un peu lourd quand même !), comment pourrais-je
procéder ?

Merci d'avance pour votre aide
Cordialement
Pascal



.



Avatar
MiB
Re :

Pour concatener ta ligne, je crois qu'il faut :

"TxtPrix*" & I

devienne

'"TxtPrix*" & I'

J'ai indexé des noms de variables
en paramètres d'une sub de cette façon.

Toujours dans l'espoir d'aider :-)

Michel

-----Message d'origine-----
Bonjour MiB
Merci pour ta réponse.
Je ne peux pas utiliser cette méthode :
mes zones se situent sur plusieurs pages d'un multipage
il est donc très

délicat d'utiliser le tabindex
de plus je ne tiens pas à capter chaque KeyPressed
Je viens de trouver un début de piste sur le site de
Misange

(http://www.excelabo.net/xl/controles.htm#moduleclasse)
Mais je ne peux pas facilement adapter parce que les noms
de mes contrôles

Textbox sont un peu complexes (mais très explicites pour
ce qui me concerne)

Je voudrais pouvoir utiliser dans le code cité en exemple
quelquechose comme

Like "TxtPrix*" & I (puisque mes noms commencent tous par
cela, suivi d'un

nombre de caractères indéterminé et se terminant tous par
un chiffre de 1 à

20), mais je n'y parviens pas.
Merci pour ton aide en tout cas...
Et merci à ceux qui pourront m'aider.
Cordialement
Pascal


"MiB" a écrit dans le
message de news:

061101c33f11$e8194530$
Bonjour,

Suggestion :

Pour ce genre de problème, voici comment je
procède :

J'index tous mes champs dans un ordre de saisie
Je positionne le curseur dans le premier champs
Sur l'évènement KeyPressed, je traque la touche ENTER
ou/et la touvhe TAB. Si le champs n'est pas rempli
je retourne le curseur dans le champs visé, sinon
je passe au champs suivant ...

Vous pouvez à ce moment faire un décompte des champs
L'évènement KeyPressed renvoie l'index du champs.

Michel
-----Message d'origine-----
Bonjour à toutes et à tous
Dans un Userform comportant plusieurs dizaines de zones
de texte devant être

remplies, je souhaite afficher une information qui
donnerait le décompte des

zones restant à remplir (soit donc un compteur).
En dehors de l'utilisation de l'évènement change associé
à chaque zone de

texte (un peu lourd quand même !), comment pourrais-je
procéder ?

Merci d'avance pour votre aide
Cordialement
Pascal



.




.