XL 2016 Sauvegarder et fermer Excel après inactivitée

  • Initiateur de la discussion Initiateur de la discussion Danybrett
  • 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 !

Danybrett

XLDnaute Junior
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 🙂
 

Pièces jointes

Salut et merci pour vos réponses 🙂

phlaurent55, j'ai testé ta méthode mais au bout des 10min le ThisWorkbook.Close me met une erreur 🙁

BISSON Nicole, j'ai testé ton premier lien et il fonctionne, il ferme bien que ton fichier au bout des 2min.

Par contre quand j'ouvre un fichier Excel avec ta macro et qu’après j'en ouvre un autre, et que je fais "activer la modification" ta macro se stop avec une erreur (comme pour c'elle que j'avais trouvé avant) à cette ligne la: Application.OnTime HeureArrêt, "Fin".

Par contre pour ton deuxième lien, c'est trop compliqué pour moi, ça fait quoi en plus (ou en moins) ? 🙂
 
- 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

Réponses
41
Affichages
698
Retour