Bonne chance à toi, alors...Je laisse !
J'avais laissé un peu ce problème de coté ...
Bon voici le code que j'utilise pour appeler le form_activate :
il s'agit donc d'appeler le form activate de la fenetre frmdevistab.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If bSearchDone = True Then Dim fenetre As Form Set fenetre = frmDevisTab fenetre.Form_Activate End If
A l'execution j'obtiens l'erreur : "L'objet ne gère pas cette propriété ou cette methode.
Est-ce que j'appelle correctement le form_activate ?
1) set n'est pas adapté (voir set dans aide en ligne)
2) pourquoi tout ce tintouin là ?
pourquoi passer par un pseudo de ce que tu connais (quelle serait l'utilité d'un tel tremplin ?)
parce que si je marque directementj'obtiens une erreur sur frmdevistab (il dit qu'il ne le reconais pas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part frmdevistab.form_activate
Et ... tu penses donc.... tout naturellement.... qu'en passant par un tremplin... celà va "le feinter" ?
Il y a toujours une erreur ... mais ce n'est pas la même et donc ça ne fonctionne pas. Mais bon j'ai essayé ça parce que je voyais pas vraiment quoi faire d'autre
Ouais ! bon !
alors, pour que tu essayes de comprendre :
un petit projet avec une form et une mdiform
sur la Form Form1 : un commandbutton command1
code de Form1 :
code de MdiForm1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Command1_Click() Load MDIForm1 End Sub
Celà devrait t'aider à "capter" certains mécanismes ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub MDIForm_Initialize() MsgBox "toto" End Sub
Le reste ? c'est toi ...
donc si j'ai tout bien suivi il faut que d'un coté j'ai
et que dans frmdevistab j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part Load frmdevistab?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 private sub form_initialize form_activate end sub
Ho !!!!!
Essaye et vois,... par exemple !
Celà t'aurait pris moins de temps que celui pour "poster" ce message !!!!
j'ai refait l'exemple, j'essaye de bidouiller dans mon cas depuis une bonne demi heure ... toujours pas de résultat
Je dois préciser que la fenetre frmdevistab est deja ouverte quand je la rappelle. Et que frmdevistab ne doit pas etre déchargée. Je vais faire une chronologie
1 : J'ouvre frmdevistab
2 : j'ouvre ma 2eme fenetre (frmdevistab reste ouverte en arriere plan)
3 : je clique sur un bouton de la 2eme fenetre et frmdevistab se met à jour (graçe à une fonction situé dans son form activate)
qu'est ta 1ère feuille ouverte ? une Form ou une MdiForm ? Quel est son nom ?
Qu'est ta 2ème fenêtre ouverte ? Une Form ou une MdiForm ? Quel est son nom ?
Form_activate s'applique à une Form
MdiForm_Activate s'qapplique à une MdiForm
Kif-Kif pour Load
Kif-Kif pour Initialise
Je ne sais pas ce que tu fais là ... mais cela me parait fait "au hasard..."
T'es-tu au moins aperçu de ce que, lorsque tu faisais un choix d'objet, tu obtenais un choix d'événements ? Lorsque, pour un objet, tu cliques sur un événement, le sub machinchouette commence à s'écrire seul avec la bonne syntaxe !
Tu l'as déclaré où ton boolean qui passe à true (je reprends au début)
A+
Le boolean qui passe à true est déclaré dans un module
je vais refaire mon historique.
1 : Ma Mdiform s'ouvre
2 : j'ouvre frmdevistab qui est une fenetre fille
3 : j'ouvre ma 3eme fenetre (qui est modale) (et frmdevistab reste ouverte)
4 : Lorsque je clique sur un bouton de ma 3eme fenetre, frmdevistab devrait se mettre à jour grace à la fonction situé dans son form activate
En fait j'ai compris que quand je clique sur le bouton de la 3eme fenetre, le ^rpgramme ne repasse pas dans le form activate de frmdevistab mais passe dans le mdiform activate de ma fenêtre mère.
Et donc dans ce dernier j'aimerai le renvoyer au form activate de frmdevistab
Tout devenant plus "broussailleux" au fur et à mesure que cela avance, voilà ce que tu vas faire :
Dans la form où tu souhaites une exécution (appelons cette form toto, par exemple) :
une procédure machin avec tes instructions, par exemple :
S'agissant d'une procédure, elle est appelable, dès lors que la form toto est chargée, à tout moment par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 sub machin() msgbox "m'y voilà, pardi" end sub
et ton tour est joué sans t'embarraser de toute cette acrobatie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 toto.machin
Tu ne dis pas s'il est déclaré en Public
A+
Edit
Je parle toujours du boolean, je suis mon idée...
Oui il est déclaré en public
Sinon la form est chargée et si j'appele "frmdevistab.form_activate" il y a une erreur me disant que le programme ne connait pas d'objet "frmdevistab" (d'ou le but de mon "acrobatie" avec le set fenetre ) frmdevistab)
J'ignore comment et combien de fois il faudra te répéter :Sinon la form est chargée et si j'appele "frmdevistab.form_activate" il y a une erreur me disant que le programme ne connait pas d'objet "frmdevistab" (d'ou le but de mon "acrobatie" avec le set fenetre ) frmdevistab)
1) qu'on ne peut depuis une form appeler l'événement d'une autre Form
2) que le fait d'utiliser ton fameux "tremplin" ne leurre pas VB !
Il n'en va pas de même en ce qui concerne une procédure d'une Form, que tu peux appeler depuis une autre Form si la Form qui contient la procédure est chargée !
Voilà !
Libre à toi de continuer à faire des manoeuvres en tous genres, si tu veux... mais fais-les alors seul !
Ma form contenant ma procédure est chargée
j'appele cette procédure depuis une autre form ... et cela ne fonctionne toujours pas
montre donc le code d'appel (depuis le sub jusqu'à end sub et celui de la procédure appelée, également depuis le sub jusqu'au end sub en précisant ouù se trouve chacune de ces 2 procédures (nom et type de la form)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager