fermer un classeur si inactif apres x minute - VB/VBA/VBS - Programmation
MarshPosté le 25-03-2011 à 18:47:25
Bonjour, j'avais trouvé une macro pour excel qui ferme un classeur si inactif apres 1 minute, j'ai tenté de la refaire fonctionner mais j'ai une erreur. Voic ce que j'ai fais: dans un module entré:
Sub fermeture() ' ' fermeture Macro ' fermeture si inactif '
' End Sub Option Explicit Option Private Module 'Ti 'Delai est le temps d'inactivité maxi en minutes Const Delai = 1 Sub Programmation() Dim Heure As Date Heure = Now + TimeValue("00:" & Delai & ":00" ) blocage a cette ligne 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 .Close Else Programmation End If End With End Sub Sub SupprimeInterruption() Dim Heure As Date On Error Resume Next Heure = ThisWorkbook.Sheets(1).Evaluate("ChronoTime" ) Application.OnTime Heure, "Interruption", schedule:=False End Sub
puis dans thisworbook:
Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean) SupprimeInterruption End Sub Private Sub Workbook_Open() Programmation End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range) ThisWorkbook.Names("Chrono" ).Value = 1 End Sub
Marsh Posté le 25-03-2011 à 18:47:25
Bonjour,
j'avais trouvé une macro pour excel qui ferme un classeur si inactif apres 1 minute, j'ai tenté de la refaire fonctionner mais j'ai une erreur. Voic ce que j'ai fais:
dans un module entré:
Sub fermeture()
'
' fermeture Macro
' fermeture si inactif
'
'
End Sub
Option Explicit
Option Private Module
'Ti
'Delai est le temps d'inactivité maxi en minutes
Const Delai = 1
Sub Programmation()
Dim Heure As Date
Heure = Now + TimeValue("00:" & Delai & ":00" ) blocage a cette ligne
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
.Close
Else
Programmation
End If
End With
End Sub
Sub SupprimeInterruption()
Dim Heure As Date
On Error Resume Next
Heure = ThisWorkbook.Sheets(1).Evaluate("ChronoTime" )
Application.OnTime Heure, "Interruption", schedule:=False
End Sub
puis dans thisworbook:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
SupprimeInterruption
End Sub
Private Sub Workbook_Open()
Programmation
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
ThisWorkbook.Names("Chrono" ).Value = 1
End Sub
Est ce que quelqu'un peut m'aider
A+