Comprehension de Fichier log d'utilisation d'un classeur de Michel Pierron
1 réponse
francisco
Bonjour tout le monde
j'ai recupéré une macro de Michel Pierron dans le site du disciplus
simplex qui se trouve en dessous de ce message et je ne comprends pas les
trois premières lignes de cette macro, compte tenu de mon niveau en vba je
vous recopie la macro dans ce message elle permet de creer un fichier log
dans laquelle va se trouver la date d'ouverture du fichier la date de
fermeture de fichier et le nom de l'utilisateur
je cherche à savoir ceque represente le fichier advapi32.dll et comprendre
la Function UserName()
si quelqu'un d'entre vous pouvez m'expliquer
Merci à tous
Aurevoir tout le monde
Amicalement francisco
Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub Workbook_BeforeClose(Cancel As Boolean)
LogUserAction "Closed"
End Sub
Private Sub Workbook_Open()
LogUserAction "Opened"
End Sub
Function UserName()
Dim S As String, n As Long, Res As Long
S = String$(200, 0): n = 199: Res = GetUserName(S, n)
UserName = Left(S, n - 1)
End Function
Sub LogUserAction(Action As String)
Dim f As Integer, HistLog As String
HistLog = Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1)
HistLog = ThisWorkbook.Path & "\" & HistLog & ".txt"
f = FreeFile
Open HistLog For Append Shared As #f
Write #f, Format(Now, "yyyy-mm-dd hh:mm:ss"), UserName, Action
Close #f
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
j
la macro en question utilise, en plus des fonctions habituelles d'Excel, des fonctions API qu'elle va chercher dans les DLL de Windows. Il faut les déclarer avant toute autre instruction, c'est ce qui est fait dans les premières lignes la première fonction GetUserName est récupérée dans la dll "advapi32.dll"
Cela permet d'étendre considérablement les possibilités du VB(A) cf par ex http://jacxl.free.fr/cours_xl/cours_xl_jac.html#api_s
"francisco" a écrit dans le message de news: bp8car$2e1$
Bonjour tout le monde
j'ai recupéré une macro de Michel Pierron dans le site du disciplus simplex qui se trouve en dessous de ce message et je ne comprends pas les trois premières lignes de cette macro, compte tenu de mon niveau en vba je
vous recopie la macro dans ce message elle permet de creer un fichier log dans laquelle va se trouver la date d'ouverture du fichier la date de fermeture de fichier et le nom de l'utilisateur je cherche à savoir ceque represente le fichier advapi32.dll et comprendre
la Function UserName() si quelqu'un d'entre vous pouvez m'expliquer
Merci à tous Aurevoir tout le monde Amicalement francisco
Private Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub Workbook_BeforeClose(Cancel As Boolean) LogUserAction "Closed" End Sub
Private Sub Workbook_Open() LogUserAction "Opened" End Sub
Function UserName() Dim S As String, n As Long, Res As Long S = String$(200, 0): n = 199: Res = GetUserName(S, n) UserName = Left(S, n - 1) End Function
Sub LogUserAction(Action As String) Dim f As Integer, HistLog As String HistLog = Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1) HistLog = ThisWorkbook.Path & "" & HistLog & ".txt" f = FreeFile Open HistLog For Append Shared As #f Write #f, Format(Now, "yyyy-mm-dd hh:mm:ss"), UserName, Action Close #f End Sub
la macro en question utilise, en plus des fonctions habituelles d'Excel, des
fonctions API qu'elle va chercher dans les DLL de Windows. Il faut les
déclarer avant toute autre instruction, c'est ce qui est fait dans les
premières lignes
la première fonction GetUserName est récupérée dans la dll "advapi32.dll"
Cela permet d'étendre considérablement les possibilités du VB(A)
cf par ex http://jacxl.free.fr/cours_xl/cours_xl_jac.html#api_s
"francisco" <malabar@wanadoo.fr> a écrit dans le message de news:
bp8car$2e1$1@news-reader1.wanadoo.fr...
Bonjour tout le monde
j'ai recupéré une macro de Michel Pierron dans le site du disciplus
simplex qui se trouve en dessous de ce message et je ne comprends pas les
trois premières lignes de cette macro, compte tenu de mon niveau en vba
je
vous recopie la macro dans ce message elle permet de creer un fichier log
dans laquelle va se trouver la date d'ouverture du fichier la date de
fermeture de fichier et le nom de l'utilisateur
je cherche à savoir ceque represente le fichier advapi32.dll et
comprendre
la Function UserName()
si quelqu'un d'entre vous pouvez m'expliquer
Merci à tous
Aurevoir tout le monde
Amicalement francisco
Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub Workbook_BeforeClose(Cancel As Boolean)
LogUserAction "Closed"
End Sub
Private Sub Workbook_Open()
LogUserAction "Opened"
End Sub
Function UserName()
Dim S As String, n As Long, Res As Long
S = String$(200, 0): n = 199: Res = GetUserName(S, n)
UserName = Left(S, n - 1)
End Function
Sub LogUserAction(Action As String)
Dim f As Integer, HistLog As String
HistLog = Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1)
HistLog = ThisWorkbook.Path & "" & HistLog & ".txt"
f = FreeFile
Open HistLog For Append Shared As #f
Write #f, Format(Now, "yyyy-mm-dd hh:mm:ss"), UserName, Action
Close #f
End Sub
la macro en question utilise, en plus des fonctions habituelles d'Excel, des fonctions API qu'elle va chercher dans les DLL de Windows. Il faut les déclarer avant toute autre instruction, c'est ce qui est fait dans les premières lignes la première fonction GetUserName est récupérée dans la dll "advapi32.dll"
Cela permet d'étendre considérablement les possibilités du VB(A) cf par ex http://jacxl.free.fr/cours_xl/cours_xl_jac.html#api_s
"francisco" a écrit dans le message de news: bp8car$2e1$
Bonjour tout le monde
j'ai recupéré une macro de Michel Pierron dans le site du disciplus simplex qui se trouve en dessous de ce message et je ne comprends pas les trois premières lignes de cette macro, compte tenu de mon niveau en vba je
vous recopie la macro dans ce message elle permet de creer un fichier log dans laquelle va se trouver la date d'ouverture du fichier la date de fermeture de fichier et le nom de l'utilisateur je cherche à savoir ceque represente le fichier advapi32.dll et comprendre
la Function UserName() si quelqu'un d'entre vous pouvez m'expliquer
Merci à tous Aurevoir tout le monde Amicalement francisco
Private Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub Workbook_BeforeClose(Cancel As Boolean) LogUserAction "Closed" End Sub
Private Sub Workbook_Open() LogUserAction "Opened" End Sub
Function UserName() Dim S As String, n As Long, Res As Long S = String$(200, 0): n = 199: Res = GetUserName(S, n) UserName = Left(S, n - 1) End Function
Sub LogUserAction(Action As String) Dim f As Integer, HistLog As String HistLog = Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1) HistLog = ThisWorkbook.Path & "" & HistLog & ".txt" f = FreeFile Open HistLog For Append Shared As #f Write #f, Format(Now, "yyyy-mm-dd hh:mm:ss"), UserName, Action Close #f End Sub