OVH Cloud OVH Cloud

VBA - Show modal au secours !

11 réponses
Avatar
Chokes
Bonsoir toutes et tous,
J'ai créé une application avec XL comportant 16 USF.
Chaque USF se ferment par la cde Unload par un CommandButton et ouvre le
suivant USF en même temps (Unload USF1 USF2.Show)
Cela fonctionne bien si je suis en ShowModal = False mais pas si je suis en
True car dans ce cas le USF1 reste affiché en arrière plan.
Suis je condamné à rester en ShowModal=False ? ce qui ne m'arrange pas du
tout pour eviter que les utilisateurs aillent "naviguer" sur les feuilles.

Merci pour vos réponses

10 réponses

1 2
Avatar
LSteph
Bonjour "Chokes" ,
Hum...avantages et inconvénients...§
Pas sûr mais à la place de Unload Me
essaie Me.Hide (si cela va avec ta proc)
lSteph

"Chokes" a écrit dans le message de news:

Bonsoir toutes et tous,
J'ai créé une application avec XL comportant 16 USF.
Chaque USF se ferment par la cde Unload par un CommandButton et ouvre le
suivant USF en même temps (Unload USF1 USF2.Show)
Cela fonctionne bien si je suis en ShowModal = False mais pas si je suis
en
True car dans ce cas le USF1 reste affiché en arrière plan.
Suis je condamné à rester en ShowModalúlse ? ce qui ne m'arrange pas du
tout pour eviter que les utilisateurs aillent "naviguer" sur les feuilles.

Merci pour vos réponses


Avatar
Chokes
Merci LSteph,

j'ai tenté de fermer avec Hide mais c'est pareil en ShowModal = True

Par contre comme je ne suis pas expert, peux tu me dire si je dois fermer le
USF1 par la formule : USF1.Hide ou bien
Me.Hide
si ça trouve ça peut tout changer, car jusqu'à maintenant j'ai toujours dans
mes tentatives fermé par le premier choix.

je ferai les essais demain car il se fait tard.
Bonne nuit et merci
Avatar
Chokes
Bonjour,

J'ai fait ainsi que tu me l'as dit LSteph mais ça ne fonctionne pas.

Y a t'il autre solution pour empecher que l'utilisateur aille modifier ou
même voir les feuilles pendant affichage d'USF ?

J'ai cependant vérifié que si quleques USF etaient en ShowModal = False les
autres USF ne restaient pas en arrière plan mais franchement ce n'est pas la
solution. Je prefère que tout soit bloqué.

Merci pour réponse et bonne journée
Avatar
LSteph
Bonjour,

USF1.Hide ou bien Me.Hide
Me désigne l'objet donc potentiellement usf1 si l'on "cause " dans son code.

pour la finalité cela revient au même .

Probablement compris à coté, te proposais cette alternative hide
si ton but est qu'il reste tous chargés et passer de l'un à l'autre .
En showmodal false on peut accèder à la feuille.
Si showmodal est true on ne peut normalement pas bidouiller en même temps
dans la feuille
si on utilise hide cela masque simplement le uf et selon ce que j'en crois
savoir et confirmé dans
l'aide si comme tu le faisais avec unload tu le décharge de la mémoire donc
amha à part pb de refresh
de l'écran je ne vois pas bien ce qui t'indique qu'il reste en arrière plan.
Désolé.quelquechose m'échappe ou me dépasse ....

a+

lSteph

"Chokes" a écrit dans le message de news:

Bonjour,

J'ai fait ainsi que tu me l'as dit LSteph mais ça ne fonctionne pas.

Y a t'il autre solution pour empecher que l'utilisateur aille modifier ou
même voir les feuilles pendant affichage d'USF ?

J'ai cependant vérifié que si quleques USF etaient en ShowModal = False
les
autres USF ne restaient pas en arrière plan mais franchement ce n'est pas
la
solution. Je prefère que tout soit bloqué.

Merci pour réponse et bonne journée


Avatar
anonymousA
Bonjour,

le phénomène que tu décris peut se produire quand au lieu d'écrire
dans ton commandbutton
uf2.show
unload me

Il faut écrire
unload me
uf2.show

Dans ces conditions, tu auras des UF tous modaux et il n'y a plus de
problème.

Si tu écris uf.show unload Me alors tes UF restent affichés quand ils
sont modaux. Si tu veux qu'il ne restent pas affichés lors de l'appel
d'un autre UF, ca te contraint à mettre le 1er d'entre eux non modal
mais si le 1er est non modal tous les autres devront être non modaux
sinon VBA se fache.

En résumé, tous tes UF peuvent être modaux ( et non affichés en
arrière plan) si tu écris simplement dans tes procs de commandbutton
qui les appellent
Unload Me
UFx.Show


Ai fait des essais avec simplement 3 UF et des commandbutton sur les UF
dans les 2 situations.

A+
Avatar
Chokes
Merci à vous deux pour vos réponses,

je vais faire les corrections ce soir et voir le comportement de UF.

Il me vient en tête aussi que j'ai affecté à certain de mes UF des msgbox
mais je n'ai pas dû les fermer par aucune commande du style unload me. Je
pense que ça doit perturber mes affichages.

je ne manquerai pas de vous informer de la bonne suite.

Bon après midi
Avatar
Chokes
j'ai fait comme vous m'avez dit et ça ne marche pas.

j'ai rentré dans chacun de mes UF la commande :
Application.ScreenUptading = False

Est ce qu'elle peut perturber ?
Avatar
Chokes
Bingo !

quand je neutralise ma commande Uptading mes UF fonctionnent bien en modal =
true.

Mais alors quelle commande rentrer quand mas boutons font travailler XL sans
avoir des aller retour dus aux différentes commandes sheets ?

Merci pour vos reponses
Avatar
anonymousA
ca peut. Si tu le souhaites,envoies-to fichier sur ma BAL perso


Je verrai ce qui se passe.

A+
Avatar
anonymousA
Suis pas sur de comprendre la question. Peux-tu préciser ?

Ceci dit , ce que je te disais dans mon 1er post tient toujours, y.c si
tu mets Application.screenupdating=true.

A+
1 2