Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fermeture automatique

6 réponses
Avatar
BEAUCHAND
Bonjour à tous,

J'utilise la code suivant pour fermer automatiquement le classeur "xyz"
après 30 minutes sans fermer Excel car d'autres classeurs sont ouverts.

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:30:00"), "fermoi"
End Sub
Sub fermoi()
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close False
End Sub

Mon problème est le suivant:
Si le classeur "xyz" est fermé par l'utilisateur avant 30 minutes, celui-ci
est réouvert par Excel lorsque les 30 minutes sont écoulées.
Comment faire pour empêcher la réouverture automatique du classeur "xyz"?
J'imagine qu'il faudrait annuler le décompte du temps à la fermeture du
classeur, mais comment?

Merci à l'avance!

6 réponses

Avatar
Quetzalcoatl
Bonsoir,

Public temps as Variant

Private Sub Workbook_Open()
temps = Now + TimeValue("00:30:00")
Application.OnTime temps, "fermoi"


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime EarliestTime:=temps, _
Procedure:="fermoi", Schedule:úlse
End Sub

Nous dire.

"BEAUCHAND" a écrit dans le message de
news:
Bonjour à tous,

J'utilise la code suivant pour fermer automatiquement le classeur "xyz"
après 30 minutes sans fermer Excel car d'autres classeurs sont ouverts.

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:30:00"), "fermoi"
End Sub
Sub fermoi()
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close False
End Sub

Mon problème est le suivant:
Si le classeur "xyz" est fermé par l'utilisateur avant 30 minutes,
celui-ci
est réouvert par Excel lorsque les 30 minutes sont écoulées.
Comment faire pour empêcher la réouverture automatique du classeur "xyz"?
J'imagine qu'il faudrait annuler le décompte du temps à la fermeture du
classeur, mais comment?

Merci à l'avance!


Avatar
BEAUCHAND
Bonjour Quetzalcoatl,
J'ai essayé ton code mais si je ferme le classeur avant le délai de 30
minutes, Excel le réouvre automatiquement lorsque le 30 minutes est écoulé.

Merci!


Bonsoir,

Public temps as Variant

Private Sub Workbook_Open()
temps = Now + TimeValue("00:30:00")
Application.OnTime temps, "fermoi"


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime EarliestTime:=temps, _
Procedure:="fermoi", Schedule:úlse
End Sub

Nous dire.

"BEAUCHAND" a écrit dans le message de
news:
Bonjour à tous,

J'utilise la code suivant pour fermer automatiquement le classeur "xyz"
après 30 minutes sans fermer Excel car d'autres classeurs sont ouverts.

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:30:00"), "fermoi"
End Sub
Sub fermoi()
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close False
End Sub

Mon problème est le suivant:
Si le classeur "xyz" est fermé par l'utilisateur avant 30 minutes,
celui-ci
est réouvert par Excel lorsque les 30 minutes sont écoulées.
Comment faire pour empêcher la réouverture automatique du classeur "xyz"?
J'imagine qu'il faudrait annuler le décompte du temps à la fermeture du
classeur, mais comment?

Merci à l'avance!







Avatar
BEAUCHAND
Bonjour Quetzalcoatl,

J'ai essayé ton code mais si je ferme le classeur avant 30 minutes, Excel le
réouvre automatiquement lorsque le 30 minutes est écoulé.

Merci!


Bonsoir,

Public temps as Variant

Private Sub Workbook_Open()
temps = Now + TimeValue("00:30:00")
Application.OnTime temps, "fermoi"


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime EarliestTime:=temps, _
Procedure:="fermoi", Schedule:úlse
End Sub

Nous dire.

"BEAUCHAND" a écrit dans le message de
news:
Bonjour à tous,

J'utilise la code suivant pour fermer automatiquement le classeur "xyz"
après 30 minutes sans fermer Excel car d'autres classeurs sont ouverts.

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:30:00"), "fermoi"
End Sub
Sub fermoi()
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close False
End Sub

Mon problème est le suivant:
Si le classeur "xyz" est fermé par l'utilisateur avant 30 minutes,
celui-ci
est réouvert par Excel lorsque les 30 minutes sont écoulées.
Comment faire pour empêcher la réouverture automatique du classeur "xyz"?
J'imagine qu'il faudrait annuler le décompte du temps à la fermeture du
classeur, mais comment?

Merci à l'avance!







Avatar
JB
Tu as du oublier :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime EarliestTime:=temps, Procedure:="fermoi",
Schedule:úlse
End Sub

Voir exemple dans PJ: http://cjoint.com/?fshhquIwGM

JB
Avatar
BEAUCHAND
Bonjour JB,

J'ai utilisé le code que tu m'as fournis dans le fichier cjoint.
Ca fonctionne très bien si je l'utilise dans un classeur vierge mais dans
mon classeur qui contient beaucoup d'autres macros et code ça ne fonctionne
pas.

Merci à l'avance!


Tu as du oublier :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime EarliestTime:=temps, Procedure:="fermoi",
Schedule:úlse
End Sub

Voir exemple dans PJ: http://cjoint.com/?fshhquIwGM

JB




Avatar
BEAUCHAND
Bonjour Quetzalcoat et JB,

J'ai trouvé d'où venais le problème.
Comme j'ai un bouton pour fermer le classeur sur une des feuilles, j'ai mis
la ligne suivante dans le code du bouton au lieu de la mettre dans
BeforeClose
du Workbook:
Application.OnTime EarliestTime:=temps, Procedure:="fermoi",Schedule:úlse

Et ça fonctionne bien.

Merci à vous deux!

Bonjour à tous,

J'utilise la code suivant pour fermer automatiquement le classeur "xyz"
après 30 minutes sans fermer Excel car d'autres classeurs sont ouverts.

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:30:00"), "fermoi"
End Sub
Sub fermoi()
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close False
End Sub

Mon problème est le suivant:
Si le classeur "xyz" est fermé par l'utilisateur avant 30 minutes, celui-ci
est réouvert par Excel lorsque les 30 minutes sont écoulées.
Comment faire pour empêcher la réouverture automatique du classeur "xyz"?
J'imagine qu'il faudrait annuler le décompte du temps à la fermeture du
classeur, mais comment?

Merci à l'avance!