Bonjour à tous !
Je me permet de vous soliciter pour un petit souci que je rencontre sur mon fichier Excel. Je travail dans un service ou nous avons en commun un fichier Excel pour la saisie de différente donnée, sauf que le problème courant est l'oubli de fermeture du fichier en écriture.
J'ai mi l'ensemble des paramètres pour mes utilisateurs afin de réduire les problèmes, mot de passe, conseil de lecture seule à l'ouverture au lieu de l'écriture.
Sauf que j'ai toujours par moment certains de mes collègues qui partent en oubliant de fermer le fichier en écriture... Je souhaitais du coup mettre une deconnexion automatique et sauvegarde.
Je suis tombé sur ce topic sur lequel j'ai pu prendre le plus d'information (un grand merci à JCGL):
https://www.excel-downloads.com/thr...ture-dun-fichier-apres-10-dinactivite.163186/
Cependant, la plupart d'entre nous utilisent le fichier en lecture seule, et la macro est active aussi en lecture et tente du coup d'enregistrer une copie du fichier après les Xmn/sec. Y a t'il une possibilité d'empêcher l’exécution de cette macro si on est en lecture? Ou l'activer uniquement en écriture?
Je vous joins le code que j'utilise actuellement qui est celui de JCGL:
"ThisWorkbook"
"Module1"
Un immense merci pour vos réponses quel qu'elle soit.
Cordialement,
Baltro
Je me permet de vous soliciter pour un petit souci que je rencontre sur mon fichier Excel. Je travail dans un service ou nous avons en commun un fichier Excel pour la saisie de différente donnée, sauf que le problème courant est l'oubli de fermeture du fichier en écriture.
J'ai mi l'ensemble des paramètres pour mes utilisateurs afin de réduire les problèmes, mot de passe, conseil de lecture seule à l'ouverture au lieu de l'écriture.
Sauf que j'ai toujours par moment certains de mes collègues qui partent en oubliant de fermer le fichier en écriture... Je souhaitais du coup mettre une deconnexion automatique et sauvegarde.
Je suis tombé sur ce topic sur lequel j'ai pu prendre le plus d'information (un grand merci à JCGL):
https://www.excel-downloads.com/thr...ture-dun-fichier-apres-10-dinactivite.163186/
Cependant, la plupart d'entre nous utilisent le fichier en lecture seule, et la macro est active aussi en lecture et tente du coup d'enregistrer une copie du fichier après les Xmn/sec. Y a t'il une possibilité d'empêcher l’exécution de cette macro si on est en lecture? Ou l'activer uniquement en écriture?
Je vous joins le code que j'utilise actuellement qui est celui de JCGL:
"ThisWorkbook"
Code:
Private Sub Workbook_Open()
Arrêt = False: Laps = Timer
'Le temps pendant lequel le fichier n'est pas activé
'Heures:Minutes:Secondes
' à ajuster ici c'est réglé sur 10 minutes !
Durée = TimeValue("00:10:05")
Départ
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Remarque : cette macro événementielle détecte les clics dans une cellule du classeur.
'Vous pouvez bien entendu utiliser un autre événement pour décider qu'un classeur est inactif
'Pas de clic dans une cellule donnée, pas de saisie dans un userform, pas de changement de feuille...
Arrêt = True
Laps = Timer
End Sub
"Module1"
Code:
Option Explicit
Public Durée As Date
Public Arrêt As Boolean
Public Laps As Double
Sub Départ()
Dim D As Date
D = Now + TimeValue(Durée)
Application.OnTime D, "FermerLeClasseur"
Durée = TimeValue("00:10:05")
End Sub
Sub FermerLeClasseur()
Dim M As Integer
Dim S As Integer
Dim R As String
If Arrêt = False Then
'Ferme et enregistre le classeur.
ThisWorkbook.Close True
Else
Laps = Timer - Laps
M = Int(Laps / 60)
S = Int(Laps)
R = TimeValue("00:" & M & ":" & S)
Durée = TimeValue(Durée) - TimeValue(R)
Arrêt = False
Départ
End If
End Sub
Un immense merci pour vos réponses quel qu'elle soit.
Cordialement,
Baltro
Dernière édition: