Showmodal & Setfocus dans VBA

Résolu
sanson42 Messages postés 3 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 31 janvier 2006 - 18 janv. 2006 à 16:04
sanson42 Messages postés 3 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 31 janvier 2006 - 24 janv. 2006 à 10:54
J'utilise 3 userforms qui sont tous SHOWMODAL = FALSE,
chaque userform contient un textbox, et lorsque un texte
est saisie au clavier, je valide avec ENTER pour passer à
la feuille suivante:

dans la sub de KEYPRESS je fais:
userform1.hide
userform2.show

Le problème s'est que j'ai besoin d'avoir le focus sur chaque
textbox de chaque userform, donc dans la sub userform2.activate
je fais:

textbox1.setfocus

Arriver à userform3 je revalide mon champ textbox1 avec la touche
ENTER pour réafficher la feuille userform1 et là gros problème
le textbox n'a pas le focus (meme avec la fonction textbox1.setfocus
dans userform1.activate)
Le textbox s'emble en effet ne pas avoir le focus ( en fait le curseur
ne clignote pas et rend impossible la saisie du controle textbox directement
du clavier, je pourrais biensur utilisé ma souris et cliquez sur le controle
textbox pour récuperer le focus, mais le problème c'est que je ne doit justement pas utiliser la souris!)

Pour résoudre se problème on pourait tous simplement mettre
ShowModal = True mais la pile des appels ne va pas aimer très
longtemps et on se retrouve avec une ERREUR 28
(bien entendu il n'est pas question de déchargé les feuilles
avec UNLOAD! )

C'est un vrai casse-tête...

5 réponses

sanson42 Messages postés 3 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 31 janvier 2006
24 janv. 2006 à 10:54
J'ai essayer toutes les infos que vous m'avez faite passer et elle ne fonctionne pas dans ce cas, mais j'ai trouver une solution que vous donne si un jour vous avez le même problème:

il suffit de faire :

textbox1.visible = false
textbox1.visible = true
textbox1.setfocus

et voila le tour est joué!
3
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
19 janv. 2006 à 04:18
As-tu essayé de redonner le focus via la procédure événementielle _Enter :
Private Sub TextBox1_Enter()
TextBox1.SetFocus
End Sub

Ou un truc du genre...

???

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
19 janv. 2006 à 09:52
Bonjour,

Essaye de mettre sur l'événement activate de chaque form
on error resume next
text1.setfocus
0
kalobit Messages postés 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 2
19 janv. 2006 à 11:39
Salut,

utilise un controle miltipage, comme ça tu n'as plus qu'une feuille et plus de pb de setfocus.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
19 janv. 2006 à 17:04
C'est pas non plus une mauvaise idée!

Mais dit moi... connais-tu la fonction qu'a la touche "tab" pour le focus ??? Et Shift+Tab ???

(Shift = MAJ pour info)

On peut presque tout faire sans la souris... si on sait se servir correctement de son clavier!

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
0
Rejoignez-nous