- Como posso registrar todos usuários que acessam as minhas planilhas, guardando o nome e horário em um arquivo texto num servidor?
Function LogInfo (LogMessage As String)
Const LogFileName As String = "C:\Bernardes\wbLog.log"
Dim FileNum As Integer
Let FileNum = FreeFile ' Próximo número do Arquivo.
Open LogFileName For Append As #FileNum ' Cria o arquivo se ele não existir.
Print #FileNum, LogMessage ' Se o arquivo existir grava a informação do final deste.
Close #FileNum ' Fecha o arquivo.
End Function
Podemos efetuar chamadas a essa função assim que abrirmos a planilha.
Private Sub Workbook_Open()Call LogInfo (ThisWorkbook.Name & " opened by " & Application.UserName & " " & Format(Date, "yyyy-mm-dd hh:mm"))End Sub
Arquivos criados como Log podem ser lidos por quaisquer aplicativos capacitados para ler arquivos texto. Por exemplo: Notepad, TextPad, Write, Word e Excel.
Também é possível lermos o conteúdo dos arquivos de log com o VBA, abaixo segue um exemplo:
Function DisplayLastLogInfo()Const LogFileName As String = "C:\Bernardes\wbLog.log"Dim FileNum As Integer, tLine As StringLet FileNum = FreeFileOpen LogFileName For Input Access Read Shared As #f ' Abre o arquivo para leitura.Do While Not EOF(FileNum)Line Input #FileNum, tLine ' Lê a linha do arquivo.LoopClose #FileNumMsgBox tLine, vbInformation, "Última informação do Log:"End Function
Sub DelLogF (FullFileName As String)On Error Resume Next ' ignora possíveis errosKill FullFileNameOn Error Goto 0End Sub
DelLogF "C:\Bernardes\wbLog.log"
Tags: Bernardes, MS, Microsoft, Office, Excel, log, auditory, txt, Notepad, TextPad, Write, Word
André Luiz Bernardes
A&A® - Work smart, not hard in any place.
bernardess@gmail.com
Skype: inanyplace