Aphex Twin
Messages postés27Date d'inscriptionjeudi 29 janvier 2004StatutMembreDernière intervention 8 mai 2009
-
29 août 2006 à 19:32
Aphex Twin
Messages postés27Date d'inscriptionjeudi 29 janvier 2004StatutMembreDernière intervention 8 mai 2009
-
30 août 2006 à 14:44
Bonjour,
Je cherche une syntaxe (ou une propriété de feuille) qui permettre de me dire si une feuille est bien la feuille sur laquelle se trouve actuellement l'utilisateur. J'explique:
J'ai une feuille FormMain sur laquel survient tres souvent la ligne "Textbox.SetFocus". Mais mon programme possède également des feuilles appelée en vbModal. Ce qui fait que si un SetFocus survient pendant que je suis sur une feuille Modale, mon programme plante. J'aimerai alors faire une condition qui vérifie si l'utilisateur se trouve bien sur "FormMain" avant de faire le Textbox.SetFocus.
Du genre:
If FormMain = (la feuille où se trouve actuellement l'utilisateur) Then Textbox.SetFocus
Si il y'a une syntaxe ou une proptiété qui donne ce genre d'info, je ne la connais pas :(
A voir également:
Verifier si une feuille est bien celle sur laquel on se trouve
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007 29 août 2006 à 23:12
Salut, je ne comprend pas ton problème. Que veux tu dire par "si un SetFocus survient ...." ?
C'est toi qui écrit ton prog, non ? Donc tu dois être capable de le maîtriser et de savoir quand tu as codé un setfocus. Il ne "survient" pas comme ça par l'opération du saint-esprit.
D'autre part, une form affichée en Modal, c'est comme une msgbox, le code qui l'a ouverte est gelé tant que cette form n'est pas fermée.
C'est bien en VB6 que tu prog ? Pas en VBA ?
Aphex Twin
Messages postés27Date d'inscriptionjeudi 29 janvier 2004StatutMembreDernière intervention 8 mai 2009 29 août 2006 à 23:20
Dans mon cas, le saint-esprit ce sont des client connecté à mon application qui est une application réseau. Ma feuille FormMain continue de recevoir des instructions en arriere plan et doit y répondre.. pendant que l'utilisateur peut se trouver dans une feuille modale. Le seul probleme c'est cette instruction SetFocus qui ne soit pas se faire si l'utilisateur se trouve sur l'autre feuille.
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007 29 août 2006 à 23:39
J'ai développé de nombreuses applications qui tournent en réseau et le seul problème que j'ai eu à gérer était l'accès aux bases de données communes.
Même si l'exécutable est le même pour tous, il est exécuté sur chaque poste sans interférence avec les autres (à part les actions sur les bases de données communes).
Explique moi de quelle manière la formMain de chaque utilisateur peut recevoir des instructions en arrière-plan. Comment cette formMain continue-t-elle à recevoir des instructions ?
J'avoue qu'il y a quelque chose que je ne saisis pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Aphex Twin
Messages postés27Date d'inscriptionjeudi 29 janvier 2004StatutMembreDernière intervention 8 mai 2009 30 août 2006 à 14:44
Merci à nouveau, PCPT. Je me suis inspiré de ta solution pour faire encore plus simple. J'ai juste ajouté une variable booleenne pour chacune de mes feuilles appelées en modal (il n'y en a que 2). Lors que la feuille modale est appelée, la variable concernée est définie sur "True". Lorsqu'on ferme la feuille modale, la variable concernée est définie sur "False".
Et donc..
If Feuille1 = False And Feuille 2 = False then textbox.setfocus
Et le tour est joué
Dolphin Boy, on peut tres bien avoir programmer de nombreuse applications réseau, ce n'est pas pour ca que les applications sont toujours les mêmes avec les mêmes fonctionnalités. J'ai trouvé inutile d'expliquer pourquoi mon application fait un setfocus.. elle fait des setfocus, point. Le language de programmation permet justement de gerer un évenement quel qu'il soit peut importe le but de l'application. J'avais donc besoin d'une manière logique pour gerer ce setfocus, plustot que de le faire sans logique et supprimer ce setfocus.