Voir qui ouvre le fichier (log)
Marc37
-
Marc37 -
Marc37 -
Bonjour à tous !
Je sollicite votre aide car je transmets des informations via un fichier excel partagé sur un serveur et j'aimerai savoir qui les lit.
J'ai essayé plusieurs VBA trouvées sur internet mais sans succès... J'utilise excel 2016.
J'ai trouvé une macro qui fonctionnait plus ou moins, avec un fichier log qui s'enregistrait, mais cela fonctionnait que si l'utilisateur clique sur enregistrer en refermant, or la plupart du temps ce n'est pas le cas et le fichier est juste lu sans être modifié.
Donc j'aurais besoin de savoir quand et par qui a été ouvert le fichier, dans un onglet caché, ou un fichier log peu importe.
Merci par avance pour votre aide !
Je sollicite votre aide car je transmets des informations via un fichier excel partagé sur un serveur et j'aimerai savoir qui les lit.
J'ai essayé plusieurs VBA trouvées sur internet mais sans succès... J'utilise excel 2016.
J'ai trouvé une macro qui fonctionnait plus ou moins, avec un fichier log qui s'enregistrait, mais cela fonctionnait que si l'utilisateur clique sur enregistrer en refermant, or la plupart du temps ce n'est pas le cas et le fichier est juste lu sans être modifié.
Donc j'aurais besoin de savoir quand et par qui a été ouvert le fichier, dans un onglet caché, ou un fichier log peu importe.
Merci par avance pour votre aide !
Configuration: Windows / Chrome 84.0.4147.125
A voir également:
- Comment ouvrir un fichier log ?
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Comment ouvrir un fichier dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment réduire la taille d'un fichier - Guide
6 réponses
Bonjouur
indique qui a ouvert et fermé le classeur et quand (xl2000)
il est possible aussi -( autre macro)de connaitre la cellule éventuellement modifiée (adresse, ancienne et nouvelle valeur)
indique qui a ouvert et fermé le classeur et quand (xl2000)
il est possible aussi -( autre macro)de connaitre la cellule éventuellement modifiée (adresse, ancienne et nouvelle valeur)
Option Explicit
'----------------------------------------
Const fichier As String = "D:\docus\bigbrother.txt" 'A ADAPTER AU CONTEXTE
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Private Sub Workbook_Open()
Dim lpBuff As String * 25
Dim retour As Long
Dim utilisateur As String, cafte As String
retour = GetUserName(lpBuff, 25)
utilisateur = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
cafte = "Ouvert à : " & Format(Now, "dd/mm/yyyy hh:mm:ss") & _
vbTab & "par : " & utilisateur
Open fichier For Append As #1
Print #1, cafte
Close
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim lpBuff As String * 25
Dim retour As Long
Dim utilisateur As String, cafte As String
retour = GetUserName(lpBuff, 25)
utilisateur = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
cafte = "Fermé à : " & Format(Now, "dd/mm/yyyy hh:mm:ss") & _
vbTab & "par : " & utilisateur
Open fichier For Append As #1
Print #1, cafte
Close
End Sub
Bonjour,
a mettre dans ThisWorkbook
a mettre dans ThisWorkbook
Option Explicit
Private Sub Workbook_Open()
'affiche en A1 le nombre d'ouvertures
Range("A1") = Range("A1") + 1
'crée un fichier texte dans le même dossier que le classeur avec le nom, la date et l'heure
Open ThisWorkbook.Path & "\compteur.txt" For Append As #1
Print #1, Application.UserName, Now
Close #1
'sauvegarde avant qu'on ferme sans sauvegarde
ActiveWorkbook.Save
End Sub
bonjour,
j'avais un autre genre de problème, j'avais un fichier qui plantait mais je n'arrivais pas à savoir si c’était toujours la même personne ou un environnement ou une version d'Excel.
j'ai donc mis cela dans l'appli. Cela m’écrit un fichier TXT dans un répertoire du réseau (accessible à tous le monde) qui parait anodin et de toute façon, ce fichier ne contient rien de spéciale ou confidentiel. Tu peux même y ajouter l'heure si tu veux. Mais si cela est plus "secret" , rien ne t'interdit de t'amuser à le crypter...
Private Sub Workbook_Open()
' Pour écrire un fichier de suivit d'ouverture du fichier de pointage mensuel
Dim Usager As String, Machine As String, FichierMois As String, Repertoire As String
Dim NomFichier As String
Usager = Environ("USERNAME")
Machine = Environ("COMPUTERNAME")
FichierMois = ThisWorkbook.Name
Repertoire = "W:\Affaires\"
NomFichier = Repertoire & FichierMois & ".TXT"
On Error GoTo fin:
Open NomFichier For Append As #1
Write #1, "Usager : " & Usager & " " & "Ordi : " & Machine & " " & "Date : " & Now
Close #1
fin:
On Error GoTo 0
End Sub
j'avais un autre genre de problème, j'avais un fichier qui plantait mais je n'arrivais pas à savoir si c’était toujours la même personne ou un environnement ou une version d'Excel.
j'ai donc mis cela dans l'appli. Cela m’écrit un fichier TXT dans un répertoire du réseau (accessible à tous le monde) qui parait anodin et de toute façon, ce fichier ne contient rien de spéciale ou confidentiel. Tu peux même y ajouter l'heure si tu veux. Mais si cela est plus "secret" , rien ne t'interdit de t'amuser à le crypter...
Private Sub Workbook_Open()
' Pour écrire un fichier de suivit d'ouverture du fichier de pointage mensuel
Dim Usager As String, Machine As String, FichierMois As String, Repertoire As String
Dim NomFichier As String
Usager = Environ("USERNAME")
Machine = Environ("COMPUTERNAME")
FichierMois = ThisWorkbook.Name
Repertoire = "W:\Affaires\"
NomFichier = Repertoire & FichierMois & ".TXT"
On Error GoTo fin:
Open NomFichier For Append As #1
Write #1, "Usager : " & Usager & " " & "Ordi : " & Machine & " " & "Date : " & Now
Close #1
fin:
On Error GoTo 0
End Sub
Ok michel_m j'ai réussi à intégrer ce dernier qui marche super !
Par contre je viens de m'apercevoir qu'il faut enregistrer le fichier excel sous format xlsx pour qu'il accepte la macro, ce n'est pas un problème en soi, mais quand je l'ai ouvert pour la première fois il y avait une barre en haut avec un avertissement de sécurité pour activer les macros, si l'utilisateur ouvre le fichier mais ne l'active pas je risque de ne pas le voir si ?
Ou comment parer à cela ?
Par contre je viens de m'apercevoir qu'il faut enregistrer le fichier excel sous format xlsx pour qu'il accepte la macro, ce n'est pas un problème en soi, mais quand je l'ai ouvert pour la première fois il y avait une barre en haut avec un avertissement de sécurité pour activer les macros, si l'utilisateur ouvre le fichier mais ne l'active pas je risque de ne pas le voir si ?
Ou comment parer à cela ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
comme il s'agit de macro, il faut l’enregistrer sous la forme xlsm
as tu autorisé les macros sur ton ordi ?
les 2 macros doivent être installées non dans un module, mais dans "thisworkbook"
autrement, je ne vois pas...
comme il s'agit de macro, il faut l’enregistrer sous la forme xlsm
as tu autorisé les macros sur ton ordi ?
Activer les macros:
rond office- -options Excel
1/standard
cocher " onglet développeur dans ruban "
2/gestion confidentialité- paramètres centre gestion-confidentialité
Activer toutes les macros
les 2 macros doivent être installées non dans un module, mais dans "thisworkbook"
autrement, je ne vois pas...