Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fermeture d'une fenetre non modale depuis une fenêtre modale

2 réponses
Avatar
SAISAS
Bonjour,

j'ai défini la fonction suivante :

Public Sub ViderMDI()

On Error Resume Next
Do While Screen.ActiveForm.Name <> "MDI"
Unload Screen.ActiveForm
DoEvents
Loop

End Sub

tout fonctionne correctement sauf quand j'ai des fenêtres modales
d'ouvertes. Voici en gros le diagnostic.

Lorsque j'ouvre ma fenêtre modale depuis une autre fenêtre, j'effectue du
code du style :

code avant ...
Form.show vbModal
code après ...

Lorsque ma fonction s'exécute, elle ferme la fenêtre modale, puis ferme la
fenêtre appelante, puis lorsqu'elle est terminée le "code après ..." récupère
la main, et soit plante s'il utilise des objets fermés lors de la fermeture
de la fenêtre appelante, ou réaffiche la fenêtre appelante dans un état
indéterminé.

Quelqu'un saurait-il comment résoudre le problème ?

Merci.

2 réponses

Avatar
Isa
Bonjour,

J'ai eu un problème du genre.
Lorsque je fermais toutes les fenêtres ouvertes, il me réaffichait une
fenêtre non initialisée.
Le problème venait du fait que je changeais le pointeur de la souris en
sablier et le remettait normal à la fin de chaque fonction un peu longue.

Lorsque je demandais à fermer la fenêtre, cela provoquait le retour à la
fonction Form_Load de l'écran après la fermeture.

J'ai donc supprimer mon changement de pointeur.

Isabelle

"SAISAS" a écrit :

Bonjour,

j'ai défini la fonction suivante :

Public Sub ViderMDI()

On Error Resume Next
Do While Screen.ActiveForm.Name <> "MDI"
Unload Screen.ActiveForm
DoEvents
Loop

End Sub

tout fonctionne correctement sauf quand j'ai des fenêtres modales
d'ouvertes. Voici en gros le diagnostic.

Lorsque j'ouvre ma fenêtre modale depuis une autre fenêtre, j'effectue du
code du style :

code avant ...
Form.show vbModal
code après ...

Lorsque ma fonction s'exécute, elle ferme la fenêtre modale, puis ferme la
fenêtre appelante, puis lorsqu'elle est terminée le "code après ..." récupère
la main, et soit plante s'il utilise des objets fermés lors de la fermeture
de la fenêtre appelante, ou réaffiche la fenêtre appelante dans un état
indéterminé.

Quelqu'un saurait-il comment résoudre le problème ?

Merci.


Avatar
SAISAS
En vous remerciant de votre réponse ...

c'est bien effectivement cela qui se produit, mais je ne peux
malheureusement pas supprimer les fonctions qui se déroulent àla fermeture,
sous peine de perdre mes mises à jour!

J'ai donc été obligé de "me débrouiller".

"Isa" a écrit :

Bonjour,

J'ai eu un problème du genre.
Lorsque je fermais toutes les fenêtres ouvertes, il me réaffichait une
fenêtre non initialisée.
Le problème venait du fait que je changeais le pointeur de la souris en
sablier et le remettait normal à la fin de chaque fonction un peu longue.

Lorsque je demandais à fermer la fenêtre, cela provoquait le retour à la
fonction Form_Load de l'écran après la fermeture.

J'ai donc supprimer mon changement de pointeur.

Isabelle

"SAISAS" a écrit :

> Bonjour,
>
> j'ai défini la fonction suivante :
>
> Public Sub ViderMDI()
>
> On Error Resume Next
> Do While Screen.ActiveForm.Name <> "MDI"
> Unload Screen.ActiveForm
> DoEvents
> Loop
>
> End Sub
>
> tout fonctionne correctement sauf quand j'ai des fenêtres modales
> d'ouvertes. Voici en gros le diagnostic.
>
> Lorsque j'ouvre ma fenêtre modale depuis une autre fenêtre, j'effectue du
> code du style :
>
> code avant ...
> Form.show vbModal
> code après ...
>
> Lorsque ma fonction s'exécute, elle ferme la fenêtre modale, puis ferme la
> fenêtre appelante, puis lorsqu'elle est terminée le "code après ..." récupère
> la main, et soit plante s'il utilise des objets fermés lors de la fermeture
> de la fenêtre appelante, ou réaffiche la fenêtre appelante dans un état
> indéterminé.
>
> Quelqu'un saurait-il comment résoudre le problème ?
>
> Merci.