Probléme fermeture fichier Excel (Application on time)

Résolu/Fermé
JHache1801_ Messages postés 19 Date d'inscription lundi 8 juillet 2019 Statut Membre Dernière intervention 30 août 2019 - 16 août 2019 à 09:05
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 19 août 2019 à 10:43
Bonjour,

Je travaille actuellement sur un projet d'application avec Excel
Lorsque j'ai plusieurs fichiers excel ouvert, et que je souhaite fermer le principal, il se re-ouvert automatiquement derriere.

Après plusieurs recherches j'ai trouver ce bout de code :

On Error Resume Next
ThisWorkbook.Application.OnTime Depart_Diapo, Procedure:="MaMacro", Schedule:=False

que je place dans Workbook.BeforeClose

Cependant mon fichier continu de s'ouvrir tout seul





Sub InitOnTime()
Depart_Diapo = Now + TimeValue("00:00:15")

If NrbFichierDiff = True Then
Rafra?chir
End If

If Not StopIt Then
Application.OnTime Depart_Diapo, "MaMacro"
Else
On Error Resume Next
Application.OnTime Depart_Diapo, "MaMacro", Schedule:=False
End If
End Sub

ici j'ai ma "tempo" de 15 secondes, et j'aimerai savoir si il était possible d'attendre que le programme soit dans le "else" avant d'executer la fonction Workbook.beforeclose ?



J'espere avoir été clair dans mes explications.

Merci
A voir également:

2 réponses

danielc0 Messages postés 830 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 17 avril 2024 74
17 août 2019 à 10:52
Bonjour,

Comment, et où, as-tu défini "Depart_Diapo" ?

Cordialement.

Daniel
0
JHache1801_ Messages postés 19 Date d'inscription lundi 8 juillet 2019 Statut Membre Dernière intervention 30 août 2019
19 août 2019 à 08:15
Bonjour,

J'ai détaillé un peu plus en répondant à eriiiic

Cordialement.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
17 août 2019 à 15:09
Bonjour,

on est bien d'accord que tu l'as ajoutée dans le module ThisWorkbook ?
Et que "MaMacro" est le nom de la sub lancée avec le timer. Difficile d'y clair avec tes petits bouts de codes extraits...
eric
0
JHache1801_ Messages postés 19 Date d'inscription lundi 8 juillet 2019 Statut Membre Dernière intervention 30 août 2019
19 août 2019 à 08:14
bonjour,

en fait, InitonTime permet de lancer la procédure "MaMacro" toutes les 15 secondes, dans cette procédure je fais défiler des images d'un dossier toutes les 15 secondes du coup.
Cepedant quand je ferme Excel même en mettant

On Error Resume Next
ThisWorkbook.Application.OnTime Depart_Diapo, Procedure:="MaMacro", Schedule:=False

lorsque j'ai 2 fichiers Excel ouvert, celui la se re-ouvre automatiquement.
J'ai l'impression que comme la procédure InitOnTime est "stoppé" pendant 15 secondes la fonction ci dessus ne fonctionne pas, c'est pourquoi je penses qu'il faudrait avant de fermer le fichier excel, faire en sorte d'attendre la fin des 15 secondes de la fonction application_ontime puis d'executer ThisWorkbook.Application.OnTime Depart_Diapo, Procedure:="MaMacro", Schedule:=False
et de fermer le fichier Excel .
Le problème c'est que je ne sais pas comment faire et je ne suis pas sur que cela puisse fonctionner comme ça

cordialement
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
19 août 2019 à 08:26
Bonjour,

Non, il n'y a pas à attendre quoi que ce soit pour désactiver un OnTime.
Et ta ligne de code semble correcte, d'où la question tu l'as ajoutée dans le module ThisWorkbook ? à laquelle tu n'as pas répondu.
Tout comme tu n'as pas répondu à : où, as-tu défini "Depart_Diapo" ? posée par danielc0. Défini là dans un module Standard.
eric
0
JHache1801_ Messages postés 19 Date d'inscription lundi 8 juillet 2019 Statut Membre Dernière intervention 30 août 2019
19 août 2019 à 08:30
oui excusez moi.

pour ce qui est de :

On Error Resume Next
ThisWorkbook.Application.OnTime Depart_Diapo, Procedure:="MaMacro", Schedule:=False

ce bout de code se trouve dans la partie ThisWorkbook et plus précisément dans la partie Workbook_BeforeClose

Et pour ce qui est de la variable " Depart_Diapo" elle n'est pas déclarée, vous pensez que le problème peut venir de la ? Si je la déclare en variable Public cela pourrait résoudre le problème ?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
19 août 2019 à 08:37
Bien sûr, il faut qu'elle soit commune à toutes les procédures l'utilisant si tu veux que .OnTime Depart_..., Schedule:=False s'applique au bon temps de déclenchement.
eric
0
JHache1801_ Messages postés 19 Date d'inscription lundi 8 juillet 2019 Statut Membre Dernière intervention 30 août 2019
19 août 2019 à 08:39
d'accord je test ça et je reviens vers vous, merci
0