Re-bonjour,
Je souhaiterais enregistrer l'activité d'un utilisateur d'excel, je parviens à créer un fichier journal avec le code:

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Public Function AjouterAuFichierTexte(ContenuAAjouter As String, CheminFichier As String)
'par: http://excel-malin.com
 
Dim oFSO As FileSystemObject
Set oFSO = New FileSystemObject
Dim oFS As TextStream
Set oFS = oFSO.OpenTextFile(CheminFichier, ForAppending)
oFS.WriteLine ContenuAAjouter
oFS.Close
Set oFS = Nothing
Set oFSO = Nothing
 
End Function
 
Public Function SauvegarderChaineCommeFichierTexte(Contenu As String, CheminFichier As String)
'par: http://excel-malin.com
 
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim oFile As Object
Set oFile = FSO.CreateTextFile(CheminFichier)
oFile.WriteLine Contenu
oFile.Close
Set FSO = Nothing
Set oFile = Nothing
 
End Function
 
Function EnregistrerAction(ActionNom As String)
Dim CheminCompletFichierJournal As String
Dim ContenuEnregistrement As String
 
CheminCompletFichierJournal = "C:\DossierLog\FichierLog.txt" '<-- changez le chemin et le nom du fichier journal
 
'création du contenu à enregistrer
' -> exemple: date, temps, nom d'utilisateur, action
ActionMoment = Now
ContenuEnregistrement = _
Year(ActionMoment) & Right("0" & Month(ActionMoment), 2) & Right("0" & Day(ActionMoment), 2) & ";" _
& Right("0" & Hour(ActionMoment), 2) & ":" & Right("0" & Minute(ActionMoment), 2) & ":" & Right("0" & Second(ActionMoment), 2) & ";" _
& Environ("UserName") & ";" _
& ActionNom
 
'vérifier si le fichier journal existe déjà & enregistrer l'information
VerificationFichierJournal = Len(Dir(CheminCompletFichierJournal))
   If VerificationFichierJournal = 0 Then
    's'il n'existe pas encore -> créer un nouveau
    LogResult = SauvegarderChaineCommeFichierTexte(ContenuEnregistrement, CheminCompletFichierJournal)
  Else
    's'il existe -> ajouter la nouvelle ligne
    LogResult = AjouterAuFichierTexte(ContenuEnregistrement, CheminCompletFichierJournal)
  End If
End Function
L'action en question est l'ouverture d'un fichier Excel part le code:

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
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 
Sub LANCEURAUCHOIX()
 
Application.EnableEvents = False
 
Nom_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*), *.xls*")
Call EnregistrerAction("Nom_Fichier")
If Nom_Fichier <> False Then
Sleep 5000
    Workbooks.Open Filename:=Nom_Fichier
   ' Application.Wait Time + TimeSerial(0, 0, 5)
    Application.EnableEvents = True
End If
 
End Sub
Mais je voudrais que le nom du classeur ouvert soit inscrit dans le fichier journal.

Si quelqu'un peut m'aider, merci beaucoup