Fenetre disparait auto

T

Titou

Guest
Bonjour,

je souhaite pouvoir afficher une feuille d'accueil à chaque ouverture d'un classeur, et pouvoir l'enlever au bout d'une dziaine de secondes

j'arrive à la faire apparaitre avec la commande


------

Private Sub Workbook_Open()

UserForm1.Show


End Sub
------


Application.Wait Now + TimeValue("00:00:10")
UserForm1.Hide


cependant je ne sais pas quelles fonctions utiliser pour faire disparaitre la feuille.

Merci pour votre aide

Titou
 

Pièces jointes

  • Classeur3.zip
    6.1 KB · Affichages: 20
  • Classeur3.zip
    6.1 KB · Affichages: 17
  • Classeur3.zip
    6.1 KB · Affichages: 19
L

LaurentTBT

Guest
Salut Titou.

Ton idée fonctionne parfaitement... à condition que ton userform ne soit pas modal. Cela nécessite d'avoir Excel > à 97.
Si c'est le cas, mets juste la propriété ShowModal de ton userform à False (dans la fenêtre propriétés de l'éditeur VBA).
Et ton code n'a pas à être modifié. (Sauf que je mettrais plutôt
Unload UserForm1 à la place de UserForm1.Hide.)

Pour le problème d'un Usf modal, aucune action n'est possible autre que celles déclenchée par l'USF lui même. Comme ton code Wait... ne dépend pas de UserForm1, le logiciel attend qu'une action soit déclenchée par l'Usf lui-même. Il ne peut pas traiter une autre tâche tant que l'USF est présent.

Si tu as une vieille version d'excel qui n'accepte pas de changer la propriété de modalité des Usf, la solution consiste à déplacer ton instruction Wait dans la procédure événementielle Activate de l'Usf:

Private Sub UserForm_Activate()
Application.Wait Now + TimeValue("00:00:10")
Unload UserForm1
End Sub

Et ton code Workbook_Open se limite à:
Private Sub Workbook_Open()
UserForm1.Show
End Sub

Cette fois, l'action Wait... est bien déclenchée par l'Usf lui-même.

Voilà, j'espère que mes explications sont claires, car ce problème n'est pas toujours évident.

Bonne soirée.
Laurent.
 
M

michel

Guest
bonjour Laurent , bonjour Titou

je viens de tester l'USF et la procedure , avec excel97 et cela fonctionne aussi

bonne soirée à vous deux et au forum
Michel
lapin4.gif
 
L

LaurentTBT

Guest
Bonsoir Michel.

Je viens de remettre le fichier initial de Titou tel quel sous Excel 97, et ça ne marche pas: le Usf s'affiche, mais ne disparaît pas au bout des 10".
De même, si je l'ouvre sur mon portable avec Excel XP, l'Usf reste affiché, et pour que la disparition automatique fonctionne, il faut que je modifie la propriété ShowModal de true à false.

Enfin, ma proposition (via l'événement activate) fonctionne dans tous les cas (sous 97 et sous XP quelle que soit la valeur de la propriété ShowModal).

Donc je ne comprends pas du tout ce qui se passe avec ton excel97. Quel teste as-tu exécuté (dans le détail, pour comprendre ce qui se passe)?

@+. Laurent.
 
M

michel

Guest
rebonsoir Laurent

excuse moi . C'est de ma faute je me suis mal exprimé

en fait je voulais juste préciser que ta solution fonctionnait bien avec excel97

...malgré les moyens modernes de communication ce n'est pas toujours évident de se comprendre ...;o)....

bonne soirée à toi
Michel
lapin4.gif
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom