Fermer un classeur après un délai d’inactivité

Bonjour à tous,

J'ai cherché sur internet un moyen pour fermer un classeur après un délai d’inactivité et j'ai trouvé ça:

Je crée le Module suivant:

Sub Début()
  Activity0 = Now + TimeValue("00:01:00")
  Application.OnTime Activity0, "Fermeture"
End Sub

Sub Fermeture()
  With ThisWorkbook
    .Save
    .Close
  End With
End Sub

Sub fin()
  On Error Resume Next
  Application.OnTime , "Fermeture", , False
End Sub

Et sur le Classeur (workbook) j'écris:

Private Sub Workbook_Open()
  Call Début
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  Call fin
  Call Début
End Sub

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
  Call fin
  Call Début
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Call fin
  Call Début
End Sub

Après 1h le classeur se ferme. C'est parfait. Par contre si je procède à des modifications sur la feuille le compte à rebours ne se remet pas à zéro.

Avez-vous une idée où il est le problème? Merci.

Bonjour Zikron et

Merci de mettre le code entre balises grâce au bouton </>

Dans le code, il manque une chose essentielle à mes yeux, la déclaration de la variable publique "Activity0" et son utilisation dans la procédure fin

Sub Fin()
  On Error Resume Next
  ' Stoppe la procédure dans le délai
  Application.OnTime EarliestTime:=Activity0, Procedure:="Fermeture", Schedule:=False
  On Error GoTo 0
End Sub

@+

ça fonctionne....!!!!

Merci beaucoup!!!

Et merci pour l'accueil.

De rien

Une petite présentation ICI serait aussi la bienvenue

Bonne journée

Rechercher des sujets similaires à "fermer classeur delai inactivite"