EXCEL - mon fichier se re ouvre tout seul

Fermé
Jaasta Messages postés 15 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 7 janvier 2010 - 5 janv. 2010 à 14:25
Jaasta Messages postés 15 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 7 janvier 2010 - 7 janv. 2010 à 09:37
Salut tous le monde,

J'ai fait une macro en vba pour qu'un message s'ouvre au bout de 5 min apres ouverture de excel (malheureusement pas du fichier). voici le code que j'ai mis dans "thisworkbook" :

Private Sub Workbook_Open()
    Application.OnTime Now + TimeValue("00:05:00"), "delai"
    Application.OnTime TimeValue("20:30:00"), "delai2"
End Sub


et voici le code des macros delai et delai2

Sub delai()
Dim fermeture As Integer
fermeture = MsgBox("Excel est ouvert depuis 5 minutes. Pour enregistrer et fermer, cliquez sur Oui.", bYesNo, "Rappel")

If fermeture = vbYes Then
    ActiveWorkbook.Save
    ActiveWorkbook.Close
Else
MsgBox "S'il-vous-plaît, n'oubliez pas de fermer le fichier après utilisation !!!"
Application.OnTime Now + TimeValue("00:02:00"), "delai"

End If
End Sub



Sub delai2()
ActiveWorkbook.Save
Application.Quit
End Sub


Alors mon probleme avec ca c'est que lorsqu'un autre fichier est ouvert et que l'on ferme le premier (avec la macro) et bien au bout de 2 min il se re ouvre TOUT SEUL...
Est ce que quelqu'un à une explication et/ ou une solution???
J'ai l'impression que mes macros restent acitves meme si le fichier et donc le classeur auquel elles sont liées est fermé.

Merci d'avance
A voir également:

11 réponses

perforax Messages postés 269 Date d'inscription dimanche 3 janvier 2010 Statut Membre Dernière intervention 17 mai 2010 8
5 janv. 2010 à 15:14
tu devrait poster sa dans la rubrique programmation
0
Jaasta Messages postés 15 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 7 janvier 2010 2
5 janv. 2010 à 15:18
Bon ben je le poste aussi la bas :D
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
5 janv. 2010 à 23:26
Bonsoir,
As-tu toujours le problème en supprimant Application.OnTime Now + TimeValue("00:02:00"), "delai"
dans la procédure délai ?
Il y a peut-être un problème d'arrêt des procédures puisque tu en relances une à chaque fois que tu décides de garder le classeur ouvert.
De plus, tu ferme ActiveWorkbook et non le premier classeur ouvert.
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
5 janv. 2010 à 23:43
Bonsoir,

il faut que tu désactives ontime à la fermeture avec Schedule:=False.

Cet exemple montre comment annuler le paramétrage de OnTime de l'exemple précédent.

Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False


Lors de ton activation il faut que tu notes l'heure car c'est celle-ci précisément qu'il faut lui passer...
Et de mémoire il préfère l'argument nommé donc garde bien le EarliestTime:=

eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jaasta Messages postés 15 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 7 janvier 2010 2
6 janv. 2010 à 09:59
Salut et Merci pour les réponses mais j'ai encore des questions ;)

Gord21, j'ai déjà essayer de supprimer Application.OnTime Now + TimeValue("00:02:00") dans "delai" mais ca n'a pas marcher... Sinon le ActiveWorkbook, c'est le seul truc que j'ai trouvé pour fermer un classeur... Est ce qu'il y a un moyen de fermer un classeur spécifique?

Eriiic, je n'ai pas dû comprendre ton exemple car quand j'essaye de rajouter le earliestTime et le Schedule Excel m'affiche une erreur. Est ce que tu pourrais, s'il te plait, me ré expliquer???

Et sinon est ce qu'il y a un moyen que faire le décompte depuis l'ouverture du classeur et non pas depuis l'ouverture de Excel???

Merci Encore

Jaasta
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
6 janv. 2010 à 13:18
Bonjour,
Pour fermer un classeur spécifique, tu peux par exemple faire :
dans ta procédure Open
Dim classeur As Workbook
Set classeur = ActiveWorkbook
Application.OnTime Now + TimeValue("00:02:00"),"delai(classeur)"
...

puis
Sub delai(classeur_a_fermer As Workbook)
...
classeur_a_fermer.Close
...
End Sub


Sinon, pour le décompte, tu peux choisir de mettre ta macro dans le classeur que tu souhaites fermer (la macro se lancera à l'ouverture de ce classeur) ou dans un classeur qui s'ouvre quand tu lances Excel, tout dépend de ce que tu veux faire.

Judicieuse remarque d'Eriiic, pour l'explication, regarde l'aide de la fonction OnTime
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
6 janv. 2010 à 10:45
quand j'essaye de rajouter le earliestTime et le Schedule Excel m'affiche une erreur
C'est précis ça...
L'exemple est celui de l'aide excel

Dépose ton fichier sur cijoint.fr et colle ici le lien fourni qu'on n'ait pas tout à reconstruire
eric
0
Jaasta Messages postés 15 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 7 janvier 2010 2
6 janv. 2010 à 11:55
voili voilou le lien...
merci d'avance

http://www.cijoint.fr/cjlink.php?file=cj201001/cij5qh8f41.xls

Jaasta
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
6 janv. 2010 à 18:55
J'ai fini depuis plusieurs heures et le fichier ne s'est toujours pas réouvert.
On va attendre demain soir au moins pour être sûr, comme ça ça te laissera le temps de lire les réponses de l'autre post (et peut-être d'autres sur d'autres forums ?) que tu as fait sur le même sujet sans faire de lien ni sur l'un ni sur l'autre....
eric
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
6 janv. 2010 à 19:08
Bon, j'ai vu que c'est sur un conseil que tu as posté là bas, j'suis un peu moins faché...
La prochaine fois met un lien vers tes autres posts que chacun profite des avancées des autres et ne travaille pas pour rien.
Et allège tes fichiers, 6Mo c'est beaucoup...
Courrier2010.zip

modifs faites dans Workbook_BeforeClose et dans module5
Je t'ai changé aussi activework.xxxx en thisworkbook.xxxx, il faut fermer ce fichier (celui où est la macro) et non celui sur lequel on travaille qui peut être tout autre

eric
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
6 janv. 2010 à 21:50
PS : partager le classeur ce n'est pas plus simple ?
0
Jaasta Messages postés 15 Date d'inscription mercredi 7 octobre 2009 Statut Membre Dernière intervention 7 janvier 2010 2
7 janv. 2010 à 09:37
Salut,

Merci pour tout... désolé pour les postes à des endroits différents et les fichiers trop lourds...
Ca m'enleve une grosse epine du pied!!!

Merci encore!
Pierre

Ps: le reseau de la boite et le fait que les données en entrée soit chronologique ne permettent pas de faire un classeur partage... ;)
0