Verifier si une feuille est bien celle sur laquel on se trouve [Résolu]

Messages postés
27
Date d'inscription
jeudi 29 janvier 2004
Statut
Membre
Dernière intervention
8 mai 2009
- - Dernière réponse : Aphex Twin
Messages postés
27
Date d'inscription
jeudi 29 janvier 2004
Statut
Membre
Derniè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 :(
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
13299
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
23
3
Merci
je t'ai mis le lien dans ton précédent topic....

code à partir de FormMain
if FormIsVisible
(FormMain) then Textbox.SetFocus

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de PCPT
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007
0
Merci
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 ?
Commenter la réponse de Dolphin Boy
Messages postés
27
Date d'inscription
jeudi 29 janvier 2004
Statut
Membre
Dernière intervention
8 mai 2009
0
Merci
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.
Commenter la réponse de Aphex Twin
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007
0
Merci
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.
Commenter la réponse de Dolphin Boy
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
0
Merci
Au pire aller, tu pourrais mettre une gestion d'erreur, non ?

Si le numéro d'erreur est 5, exit sub ou quelque chose du genre

MPi
Commenter la réponse de cs_MPi
Messages postés
27
Date d'inscription
jeudi 29 janvier 2004
Statut
Membre
Dernière intervention
8 mai 2009
0
Merci
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.
Commenter la réponse de Aphex Twin