Bonjour
J'espère que vous allez bien.
J'aimerai savoir si c'est possible de redémarrer le minuteur/compteur a chaque fois que l'userform est actif ? Et s'il est possible de dire à chaque fois au miniteur de redémarrer s'il y a de l'activité sur l'userform (Ex : clique sur une combox, écriture/modification dans un combox, clique sur une liste déroulante de l'userform etc...).
En effet, j'ai le minuteur qui fonctionne très bien, quand je suis dans le classeur, que je clique sur une cellule, modifie par exemple. Mais quand il s'agit de l'userform rien ne fonctionne.
Quelqu'un aurait une idée ?
ThisWorkbook :
Dans Userform :
Dans Module :
Voici en PJ mon fichier
Je ne sais pas si ma demande est claire. Merci de votre aide
J'espère que vous allez bien.
J'aimerai savoir si c'est possible de redémarrer le minuteur/compteur a chaque fois que l'userform est actif ? Et s'il est possible de dire à chaque fois au miniteur de redémarrer s'il y a de l'activité sur l'userform (Ex : clique sur une combox, écriture/modification dans un combox, clique sur une liste déroulante de l'userform etc...).
En effet, j'ai le minuteur qui fonctionne très bien, quand je suis dans le classeur, que je clique sur une cellule, modifie par exemple. Mais quand il s'agit de l'userform rien ne fonctionne.
Quelqu'un aurait une idée ?
ThisWorkbook :
VB:
Private Sub Workbook_Open()
StartTimer ' Démarrer le minuteur lorsque le classeur est ouvert
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
ResetTimer ' Réinitialiser le minuteur lorsqu'une sélection est modifiée
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ResetTimer ' Réinitialiser le minuteur lorsqu'une cellule est modifiée
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ResetTimer ' Réinitialiser le minuteur lorsqu'une feuille est activée
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime Now + TimeValue("00:00:15"), "CheckActivity", , False ' Désactive le minuteur avant la fermeture du classeur
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ResetTimer ' Réinitialiser le minuteur avant de sauvegarder le classeur
End Sub
Dans Userform :
VB:
' Gestionnaire d'événement pour les UserForms ouverts
Private Sub UserForm_Activate()
ResetTimer ' Réinitialiser le minuteur lorsqu'un UserForm est activé
End Sub
Dans Module :
Code:
Dim IsTimerRunning As Boolean
Dim TimerStartTime As Double
Sub StartTimer()
IsTimerRunning = True
TimerStartTime = Now
Application.OnTime Now + TimeValue("00:00:15"), "CheckActivity" ' Démarre le minuteur
End Sub
Sub ResetTimer()
IsTimerRunning = False
End Sub
Sub CheckActivity()
If IsTimerRunning And Now >= TimerStartTime + TimeValue("00:00:15") Then
' Sauvegarde automatique et fermeture du classeur en cas d'inactivité
ThisWorkbook.Save
ThisWorkbook.Close
Else
StartTimer ' Redémarre le minuteur si une activité est détectée
End If
End Sub
Sub UserForm()
UserForm1.Show
End Sub
Je ne sais pas si ma demande est claire. Merci de votre aide