Thema Datum  Von Nutzer Rating
Antwort
Rot Logdatei ohne Benutzernamen aber mit einer ID
20.03.2017 14:53:47 Julius
NotSolved
20.03.2017 15:40:29 SJ
NotSolved
20.03.2017 16:03:42 Gast27303
NotSolved
21.03.2017 09:39:49 Julius
NotSolved
21.03.2017 10:10:23 Gast45830
Solved

Ansicht des Beitrags:
Von:
Julius
Datum:
20.03.2017 14:53:47
Views:
1032
Rating: Antwort:
  Ja
Thema:
Logdatei ohne Benutzernamen aber mit einer ID

Hallo zusammen,

ich habe hinter einer Excel einen Code hinterlegt der in eine Logdatei schreibt immer dann wenn die Datei geöffnet und geschlossen wird.

Da aufgrund von Arbeitsbestimmungen keine Namen erfasst werden dürfen habe ich diesen Part rausgenommen, jedoch ist es mir jetzt nicht mehr möglich zu sagen wie lange jemand in der Datei drin war.

Denn es können auch 5 Leute hintereinander die Datei geöffnet haben damit werden 5 mal Open in die Datei geschrieben und hinterher 5 mal Close.

Kann mir da jemand mit einer Art ID helfen oder wie ich das sonst machen könnte?

Private Sub Workbook_Open()
  logFile "Open"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  logFile "Close (" & IIf(Me.Saved, "S", "Uns") & "aved)"
End Sub
Option Explicit


Public Sub logFile(ByVal Action As String, Optional Sheet As String, Optional ByVal Target As String, Optional ByVal Value As String)
  Dim strLogFile As String, strTmp As String, strOld As String
'  Dim strUser As String * 12
  Dim strAction As String * 15
  Dim strSh As String * 12
  Dim strAddr As String * 12
  Const strSep As String = ", "
  
  strLogFile = ThisWorkbook.Path & Application.PathSeparator & ThisWorkbook.Name & "_log.txt"
  
  'oder
  'strLogFile = "C:\Ordner\log.txt"
  
  strTmp = Format(Now, "dd.MM.yyyy hh:mm:ss")
'  strUser = Environ("USERNAME")    'Nur für Benutzernamentracking
'  strTmp = strTmp & strUser & strSep 'Nur für Benutzernamentracking
  strTmp = strTmp & strSep
  strAction = Action
  strTmp = strTmp & strAction & strSep
  
  If Len(Sheet) Then strSh = Sheet: strTmp = strTmp & strSh & strSep
  If Len(Target) Then strAddr = Target: strTmp = strTmp & strAddr & strSep
  If Len(Value) Then strTmp = strTmp & Left(Value, 1024)
  
  If Right(strTmp, Len(strSep)) = strSep Then strTmp = Left(strTmp, Len(strTmp) - Len(strSep))
  
  Open strLogFile For Binary As #1
  strOld = Space$(LOF(1))
  Get #1, , strOld
  Close #1
  
  strTmp = strTmp & vbCrLf & strOld
  
  Open strLogFile For Output As #1
  Print #1, strTmp
  Close #1
  
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Logdatei ohne Benutzernamen aber mit einer ID
20.03.2017 14:53:47 Julius
NotSolved
20.03.2017 15:40:29 SJ
NotSolved
20.03.2017 16:03:42 Gast27303
NotSolved
21.03.2017 09:39:49 Julius
NotSolved
21.03.2017 10:10:23 Gast45830
Solved