Bonjour,
Je cherche une piste pour pouvoir fermer automatiquement un fichier EXcel contenant des données sensibles après un certain temps d'inactivité
Merci d'avance de vos suggestions ou retours d'expérience
________________________
Cordialement
Bonjour,
Je cherche une piste pour pouvoir fermer automatiquement un fichier EXcel contenant des données sensibles après un certain temps d'inactivité
Merci d'avance de vos suggestions ou retours d'expérience
________________________
Cordialement
Bonjour
Il serait souhaitable de donner des explications avec le code plutôt qu'un fichier attaché.
Beaucoup de membres ne peuvent télécharger de fichiers, et donc votre contribution sera perdue.
Philippe
Bonjour,
Désolé pour la précipitation. Voici une explication avec les codes
Mettre dans un module standard
1. Programmation de ton délai (ici, 10"):
2. Interruption si
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 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
3. Si activité, ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Interruption() With ThisWorkbook If .Sheets(1).Evaluate("Chrono") = 0 Then .Save .Close Else Programmation End If End With End Sub
Dans ThisWorkbook:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub SupprimeInterruption() Dim Heure As Date On Error Resume Next Heure = ThisWorkbook.Sheets(1).Evaluate("ChronoTime") Application.OnTime Heure, "Interruption", schedule:=False End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 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
Bonjour QuestVba,
Grace a vos explications j'ai pu adapter vos codes a mon fichier
et obtenir le résultat souhaité.
_______________________
Cordialement![]()
Partager