[Abandon]Comment stopper un Timer à la fermeture d'un fichier?

  • Initiateur de la discussion Initiateur de la discussion Neo37
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Neo37

XLDnaute Junior
Bonjour à tous,

Je fabrique un fichier qui est partagé et utilisé en même temps pas plusieurs utilisateurs, chaqu'un doit renseigner sa feuille, ce qui modifit des champs dans les autres feuilles. Donc pour voir ces changements il faut enregistrer le fichier, une sorte de rafraichissement. Il y a une automatisation d'enregistrement quand les utilisateurs modifient des choses dans leur feuille, mais en cas d'inactivité d'un utilisateur, il y avait un soucis de réactivité.
En cherchant sur le net j'ai trouvé un fichier qui joue sur l'inactivité, mais seulement une seule fois, du coup j'ai rajouté une ligne qui me fait une sorte de boucle. Seulement voilà, impossible de fermer le fichier sans devoir fermer complétement Excel, il se ré-ouvre tout seul, ce qui est un problème.

Quelqu'un saurait-il comme puis-je stopper le Timer lors de la fermeture du fichier? 🙂

Merci d'avance à ceux qui s'y intéresseront.

PS: Dans la version Excel de mon boulot, l'option pour un enregistrement automatique n'est pas présent.
 

Pièces jointes

Dernière édition:
Re : Comment stopper un Timer à la fermeture d'un fichier?

Merci Michel, ce code est plus simple que celui de mon fichier de base, avec un petit Thisworkbook.save au bonne endroit j'enregistre bien en boucle, mais je ne suis toujours pas capable de sortir de la boucle quand je ferme le fichier.
 
Re : Comment stopper un Timer à la fermeture d'un fichier?

Re

Merci Michel, ce code est plus simple que celui de mon fichier de base, avec un petit Thisworkbook.save au bonne endroit j'enregistre bien en boucle, mais je ne suis toujours pas capable de sortir de la boucle quand je ferme le fichier.

Le plus important pour arrêter un timer a été dit entre autre par JB au début de cette discussion avec ce code.

Code:
Application.OnTime temps, Procedure:="majHeure", Schedule:=False

Mais on peut avoir des surprises, si on est en en édition de cellule par exemple, il peut être inactif.
 
Re : Comment stopper un Timer à la fermeture d'un fichier?

Re

Je me retrouve avec ça dans un module
Code:
Public durée As Date
Sub Lance_Ontime_Temps()
Set the = Workbooks(ThisWorkbook.Name).Sheets(ActiveSheet.Name)
durée = the.Cells(1, 4).Text
the.Cells(1, 5) = Now
the.Cells(1, 6) = Now + durée

ThisWorkbook.Save

Application.OnTime Cells(1, 6), "Lance_Ontime_Temps"
End Sub
Et ça dans ThisWorkbook
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime temps, Procedure:="Lance_Ontime_Temps", Schedule:=False

End Sub

Mais cela ne marche pas, ça bug à la fermeture...
 
Re : Comment stopper un Timer à la fermeture d'un fichier?

Re

Personnellement, j'aurais plutôt tester:

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Application.OnTime Workbooks(ThisWorkbook.Name).Sheets(ActiveSheet.Name).cells(1,6), Procedure:="Lance_Ontime_Temps", Schedule:=False

 End Sub
 

Pièces jointes

Dernière édition:
Re : Comment stopper un Timer à la fermeture d'un fichier?

Re bonjour,

Bon j'avance un peu, mais jamais jusqu'au bout.
En gros ça enregistre bien selon une tempo défini, qui recommence en boucle, la fermeture du fichier ne pose plus de problème.
Mais le côté de faire repousser l'enregistrement, en remettant la tempo à zéro, je n'y arrive pas.

Module
Code:
Public durée As Date
Sub Lance_Ontime_Temps()

Worksheets("Feuil1").Range("A1").Value = Now + durée
ThisWorkbook.Save
Application.OnTime Cells(1, 1), "Lance_Ontime_Temps"
End Sub

ThisWorkbook
Code:
Private Sub Workbook_Open()
durée = TimeValue("00:01:00")
Lance_Ontime_Temps
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Worksheets("Feuil1").Range("A1").Value = Now + durée
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime Cells(1, 1), "Lance_Ontime_Temps", schedule:=False
ThisWorkbook.Close True
End Sub

Ma valeur de référence pour le prochain enregistrement se modifit bien, mais apparemment Excel garde en mémoire celle initiale.
 

Pièces jointes

Re : Comment stopper un Timer à la fermeture d'un fichier?

Salut à tous

En gros Michel tu veux dire que ce que je souhaite faire n'est pas possible?
Lancer une boucle d'enregistrement et la repousser quand on change la valeur d'une cellule d'une feuille.
 
Re : Comment stopper un Timer à la fermeture d'un fichier?

Bonjour Neo

En gros Michel tu veux dire que ce que je souhaite faire n'est pas possible?
Lancer une boucle d'enregistrement et la repousser quand on change la valeur d'une cellule d'une feuille.


Je n'ai pas dit cela. Mais j'ai déjà galèré sur ce genre de problème. Donc tu peux chercher une solution, il doit bien en exister une, mais j'essaie toujours de faire des codes simple, facilement adaptable. Mon emploi du temps ne me permet pas d'aller plus loin 😱.

Pour ton problème, il faut de toute façon killer le processus avant d'en relancer un qui se relance à chaque évènement change. C'est peut-être là qu'est la solution.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour