USF ne s'ouvre pas...(Résolu)

misteryann

XLDnaute Occasionnel
Bonjour au forum.
Voilà le petit soucis:
J'ai une première USF avec des boutons pour ouvrir d'autres USF.
Un premier bouton "Nouvelle Saisie" marche bien ouvre bien la USF "Nouvelle_Saisie"
Un deuxième "Rechercher Modifier" ne fait rien... (n'ouvre pas la USF "Rechercher_Modifier")

Private Sub CommandButton1_Click()
Nouvelle_Saisie.Show
End Sub

Private Sub CommandButton2_Click()
Rechercher_Modifier.Show
End Sub

Savez-vous quel est le problème?

Merci.
Cordialement.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : USF ne s'ouvre pas...

Bonjour
Comme son nom l'indique, il définit si, à défaut de spécification différente à l'appel de sa méthode Show, on veut que l'affichage de sa fenêtre soit modal ou non, c'est à dire s'il doit bloquer ou non l'exécution du processus qui en aura demandé l'affichage tant qu'elle demeurera affichée.
 

Dranreb

XLDnaute Barbatruc
Re : USF ne s'ouvre pas...

Rien à voir.
Unload Me décharge l'UserForm. Tandis que Me.Hide ne fait que terminer son affichage sans le décharger.
Les deux permettent la poursuite de l'exécution des instructions qui suivent le .Show si c'est modal. Et si ce ne l'est pas, l'exécution n'est jamais restée bloquée sur ce .Show.

En gros votre problème est que vous n'avez pas le droit de demander à Windows un affichage de fenêtre qui ne bloque pas les exécutions quelles qu'elle soient, si l'exécution est déjà bloquée par une telle demande quelque part.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : USF ne s'ouvre pas...(Résolu)

J'ai l'impression que vous n'avez rien compris…
UserForm avec ShowModal=True: .Show ==> Affiche le, puis attend, pour pouvoir continuer, que sa fenêtre se ferme.
UserForm avec ShowModal=False: .Show ==> Met le à l'état affiché de façon indépendante et continue immédiatement l'exécution.
Windows estime qu'une fenêtre ne peut être affichée de manière indépendante des exécutions si une autre fenêtre de la même application est déjà en attente de fermeture pour pouvoir continuer l'exécution du code qui l'a affiché. On peut supposer qu'ils ont découvert des cas où cela pouvait entrainer de sacrés sacs de nœuds.
Ou alors c'est impossible parce qu'en non modal la demande d'affichage est juste enregistrée mais effectuée de façon asynchrone coté Windows seulement à partir du moment où plus rien d'autre ne sera en train de s'exécuter…
Il faut bien voir que ce paramètre ShowModal définit est un vrai fondement voulu du principe de fonctionnement de votre programmation, ce n'est pas pas juste un détail secondaire. Vous avez quand même à savoir quand vous voulez que vos macros soient en train de tourner ou pas !
Alors c'est vrai, à bien y réfléchir, que c'est bizarre de dire: je veux que mon exécution se termine dans les millisecondes qui suivent en laissant une fenêtre d'UserForm nouvellement affichée en non modal, alors que cette exécution ne peut justement pas se terminer parce qu'elle est déjà bloquée sur un modal !
 
Dernière édition:

misteryann

XLDnaute Occasionnel
Re : USF ne s'ouvre pas...(Résolu)

Merci pour la réponse Dranreb.
Je garde ce post sur les USF avec modal non modal.
Tout le monde ne peut pas comprendre le VBA d'un clic ou de prendre des cours (j'ai demandé au club informatique du coin).
J'ai des idées mais pas les moyens...
En tout cas merci de votre aide précieuse.
Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 554
Messages
2 089 535
Membres
104 205
dernier inscrit
mehaya63