Fermeture fichier inactif - Macro de Ti

seb26000

XLDnaute Occasionnel
Bonsoir à tous,

J'utilise la macro de Ti concernant la fermeture automatique d'un fichier inactif depuis X minutes. Or je viens de m'aperçevoir que le fichier ne se ferme pas exactement au bout de X minutes. Je m'explique :
- Dans Thisworkbook, l'instruction de Ti est la suivante :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
ThisWorkbook.Names("Chrono").Value = 1
End Sub

-> Lorsqu'il y a un changement, la variable chrono prend la valeur de 1

- Dans un module : Ti a ajouté plusieurs programme dont notamment celui nommée "Programme" et "Interruption"
Sub Programmation()
Dim Heure As Date
Heure = Now + TimeValue("00:" & Delai & ":00")
'on sauvegarde l'heure de la dernière programmation pour éventuellement
'pouvoir la supprimer à la fermeture du fichier
ThisWorkbook.Names.Add Name:="ChronoTime", RefersTo:=Heure
ThisWorkbook.Names.Add Name:="Chrono", RefersTo:=0
Application.OnTime Heure, "Interruption"
End Sub

Private Sub Interruption()
With ThisWorkbook
If .Sheets(1).Evaluate("Chrono") = 0 Then
'.Save ( je fais pas de save, je close direct)
UserForm1.Show
'Application.DisplayAlerts = False
'Application.Quit

Else
Programmation
End If
End With
End Sub


Voici ce que j'ai remarqué, si la valeur d'inactivité est par exemple de 1min, théoriquement, 1 minute après la dernière modif, la macro "Interruption" devrait se lancer. Mais ce n'est pas la cas. Voici ce qui se passe réellement
20h20min30s : 1ere modif, la variable Chrono = 1
20h21min30s : proposition de fermeture,j'annule, Chrono=0
20h21min45s : derniere modif,chrono =1 théoriquement, la prochaine proposition de fermeture devrait avoir lieu à 20h22min45s mais ce n'est pas la cas, Excel continue jusqu'à 20h22min30 (exécution de application.ontime heure, interruption) puis comme Chrono = 1, on relance la macro Programmation qui mettra à 0 Chrono et donc la fermeture aura lieu à 20h23min30s et non à 20h22min45s.

J'ai tenté de remplacer dans thisworkbook la commande ThisWorkbook.Names("Chrono").Value = 1
par l'exécution direct de Programmation (comme ca, la variable Heure serait remise à jour immédiatement) mais ca ne marche pas.
Je vous joins le fichier original de Ti

Si quelqu'un a une idée pour que le fichier se referme exactement 1min après la derniere modif

A bientot !!!

seb
 

Pièces jointes

  • TimerFermetureTi2.zip
    14.1 KB · Affichages: 68
  • TimerFermetureTi2.zip
    14.1 KB · Affichages: 77
  • TimerFermetureTi2.zip
    14.1 KB · Affichages: 78

MJ13

XLDnaute Barbatruc
Re : Fermeture fichier inactif - Macro de Ti

Bonjour Seb

Regarde ce fichier que j'utilise.

Par contre, il me paraît diffciile d'être sur si il y a 1 minute d'inactivité après la dernière saisie.

le but de ce fichier est de tester le nombre de caractères saisie toutes les 45 secondes, avec une macro de Job75 :). Mais attention, on n'est jamais à l'abri de problèmes sur ce genre de fichier.
 

Pièces jointes

  • Ferme_Fichier_Auto.xlsm
    19.8 KB · Affichages: 185

Discussions similaires