Bonjour,
Dans un module standard, j'ai ceci :
Plutôt que de laisser la main à l'utilisateur, je souhaite fermer le classeur si aucune action n'est détectée dans l'intervalle de temporisation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Public HeureAlerte Option Private Module Sub ProchaineAlerte() With ThisWorkbooks HeureAlerte = Now + TimeValue("00:05:00") 'ajustement Application.OnTime HeureAlerte, "Fin" End With End Sub Sub fin() Dim Répertoire As String, Fichier As String, FichierIndexé As String Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:=False réponse = MsgBox("Avez-vous fini d'utiliser ce Classeur ?" _ & Chr(10) & Chr(10) & _ "Si vous cliquez sur Non, une nouvelle alerte" _ & Chr(10) & _ "s'affichera dans 05 minutes...", vbYesNo + vbQuestion) If réponse = vbNo Then Call ProchaineAlerte Else
J'ai donc ajouté ceci dans le module de Feuille :
... et ça ne fonctionne pas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Call ProchaineAlerte End Sub
Après 5', la procédure "fin" s'exécute normalement jusqu'à :
... et si l'utilisateur clique sur "Non", la procédure "ProchaineAlerte" s'exécute pour relancer une tempo de 5'réponse = MsgBox("Avez-vous fini d'utiliser ce Classeur ?")
Mais si "ProchaineAlerte" s'exécute à partir de :
ça ne réinitialise pas le compteur.Worksheet_SelectionChange
Par ailleurs, mais cela doit peut-être faire l'objet d'un autre fil de discussion, est-il possible d'avoir un "décompte" dans la barre de tâche ?
En vous remerciant par avance pour votre aide,
Cdt
Partager