Bonjour,
Après plusieurs recherches sur le net, j'ai trouvé une macro qui permet, au bout d'un temps d’inactivités sur le fichier, de sauvegarder le fichier puis de le fermer. (pour être considéré "actif" il faut cliquer sur des cases, écrire,... le scrolling n'est pas considéré).
La macro est composée de 3 parties:
Partie 1:
Option Explicit
Private Sub Workbook_Open()
Call SetTimer
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopTimer
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Call StopTimer
Call SetTimer
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
Call StopTimer
Call SetTimer
End Sub
Cette partie est écrite dans "ThisWorkbook" et est donc lancée des le début de la macro (pour ce qu'elle fait j'avoue que mis à part aller chercher d'autre macro dans un Module, je ne sais pas )
Partie 2:
Option Explicit
Dim DownTime As Date
Sub SetTimer()
DownTime = Now + TimeValue("00:10:00")
Application.OnTime EarliestTime:=DownTime, _
Procedure:="ShutDown", Schedule:=True
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=DownTime, _
Procedure:="ShutDown", Schedule:=False
On Error GoTo 0
End Sub
Sub ShutDown()
ThisWorkbook.Save
Application.Quit
End Sub
Cette partie est écrite dans un "module" et est appelée par la macro qui est dans "ThisWorkbook" je sais juste que DownTime = Now + TimeValue("00:10:00") est le temps d'attente entre chaque action, en gros la au bout de 10min d’inactivités le fichier sauvegarde avec et ferme le fichier avec la partie Sub ShutDown()
Partie 3:
Option Explicit
Cette partie est écrite sur chaque Feuille utilisée (ou pas) du classeur. Mais je dois avouer que je ne sais pas à quoi elle sert, je sais juste quand sans ça, ça ne marche pas...
Alors cette macro fonctionne très bien, je l'utilise régulièrement. Mais elle a 2 problèmes:
- La macro, au bout des 10min d'inactivité, ferme tous les fichier Excel ouvert et pas seulement celui la.
- Des fois, quand on ouvre un autre fichier Excel, la macro bug et se stop.
Quelqu'un aurait une solution pour que cette macro, au bout des 10min d’inactivités ne ferme uniquement ce fichier Excel et non les autres ouverts ? Et aussi qu'elle soit indépendante des autres Fichier excel qui pourraient être ouverts ?
Je ne sais pas si j'ai été suffisamment explicite dans mon explication, je vous transmets un fichier Excel avec cette macro.
Cordialement
Après plusieurs recherches sur le net, j'ai trouvé une macro qui permet, au bout d'un temps d’inactivités sur le fichier, de sauvegarder le fichier puis de le fermer. (pour être considéré "actif" il faut cliquer sur des cases, écrire,... le scrolling n'est pas considéré).
La macro est composée de 3 parties:
Partie 1:
Option Explicit
Private Sub Workbook_Open()
Call SetTimer
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopTimer
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Call StopTimer
Call SetTimer
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
Call StopTimer
Call SetTimer
End Sub
Cette partie est écrite dans "ThisWorkbook" et est donc lancée des le début de la macro (pour ce qu'elle fait j'avoue que mis à part aller chercher d'autre macro dans un Module, je ne sais pas )
Partie 2:
Option Explicit
Dim DownTime As Date
Sub SetTimer()
DownTime = Now + TimeValue("00:10:00")
Application.OnTime EarliestTime:=DownTime, _
Procedure:="ShutDown", Schedule:=True
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=DownTime, _
Procedure:="ShutDown", Schedule:=False
On Error GoTo 0
End Sub
Sub ShutDown()
ThisWorkbook.Save
Application.Quit
End Sub
Cette partie est écrite dans un "module" et est appelée par la macro qui est dans "ThisWorkbook" je sais juste que DownTime = Now + TimeValue("00:10:00") est le temps d'attente entre chaque action, en gros la au bout de 10min d’inactivités le fichier sauvegarde avec et ferme le fichier avec la partie Sub ShutDown()
Partie 3:
Option Explicit
Cette partie est écrite sur chaque Feuille utilisée (ou pas) du classeur. Mais je dois avouer que je ne sais pas à quoi elle sert, je sais juste quand sans ça, ça ne marche pas...
Alors cette macro fonctionne très bien, je l'utilise régulièrement. Mais elle a 2 problèmes:
- La macro, au bout des 10min d'inactivité, ferme tous les fichier Excel ouvert et pas seulement celui la.
- Des fois, quand on ouvre un autre fichier Excel, la macro bug et se stop.
Quelqu'un aurait une solution pour que cette macro, au bout des 10min d’inactivités ne ferme uniquement ce fichier Excel et non les autres ouverts ? Et aussi qu'elle soit indépendante des autres Fichier excel qui pourraient être ouverts ?
Je ne sais pas si j'ai été suffisamment explicite dans mon explication, je vous transmets un fichier Excel avec cette macro.
Cordialement