bonjour à tous,
je sais que le sujet a été abordé plusieurs fois ici ou sur d'autres sites, mais je n'arrive pas à mes fins malgré l'utilisation de codes existants.
Mon fichier se trouve sur le réseau de mon entreprise, et j'ai à l'intérieur des userforms pour saisie de données. Ce que j'aimerai, c'est de pouvoir fermer le fichier sans enregistrer si il n'y a aucune activité sur les userforms ou sur les feuilles.
J'ai trouvé un code sur ce forum que j'ai positionné sur un classeur vierge
dans thisworkbook
En module
Ce code fonctionne parfaitement bien si j'enregistre le fichier sur mon disque dur, par contre si j'enregistre sur le réseau de l'entreprise, j'ai une erreur qui est la méthode ontime de l'application a échouée.
comment puis je contourner le problème, et gérer l'inactivité sur les userforms et les feuilles.
j’espère avoir été suffisamment clair.
merci d'avance.
je sais que le sujet a été abordé plusieurs fois ici ou sur d'autres sites, mais je n'arrive pas à mes fins malgré l'utilisation de codes existants.
Mon fichier se trouve sur le réseau de mon entreprise, et j'ai à l'intérieur des userforms pour saisie de données. Ce que j'aimerai, c'est de pouvoir fermer le fichier sans enregistrer si il n'y a aucune activité sur les userforms ou sur les feuilles.
J'ai trouvé un code sur ce forum que j'ai positionné sur un classeur vierge
dans thisworkbook
PHP:
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
En module
PHP:
Option Explicit
Option Private Module
Const Delai = 10
Sub Programmation()
Dim Heure As Date
Heure = Now + TimeValue("00:00:" & Delai)
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
Ce code fonctionne parfaitement bien si j'enregistre le fichier sur mon disque dur, par contre si j'enregistre sur le réseau de l'entreprise, j'ai une erreur qui est la méthode ontime de l'application a échouée.
comment puis je contourner le problème, et gérer l'inactivité sur les userforms et les feuilles.
j’espère avoir été suffisamment clair.
merci d'avance.