Thema Datum  Von Nutzer Rating
Antwort
Rot VBA LogFile anlegen
23.08.2019 13:06:54 Gast1789456123
NotSolved
23.08.2019 14:13:53 Gast10546
NotSolved

Ansicht des Beitrags:
Von:
Gast1789456123
Datum:
23.08.2019 13:06:54
Views:
756
Rating: Antwort:
  Ja
Thema:
VBA LogFile anlegen

Hallo zusammen,

ich lasse über einen VBA Code verschiedene Fehlerbilder abfragen und entspreched des Fehlers werden Ursachen und dazu passend Maßnahmen vorgeschlagen. Diese "bewerte" ich über ein Ja/Nein-Feld (wenn Vorschlag i.O. dann weiter, wenn nicht ok dann nächster Vorschlag).

Die Entscheidung, ob ein User ja oder nein geklickt hat, möchte ich in einem LogFile mitschreiben.

Ich finde jedoch keine Möglichkeit, wie ich dies mitschreibe kann.

Danke vorab :)

Aktuell sieht mein Code für das Logfile folgendermaßen aus:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Row > 1000 Then Exit Sub
    
    Dim strDatei As String, strText As String
    Dim strZeit As String, strUser As String, strZelle As String, strOld As String, strNew As String
    Dim intFile As Integer, rng As Range
    
    Const strDELIM As String = "|"
    Const lenUser As Integer = 15
    Const lenAdresse As Integer = 6
    Const lenWert As Integer = 10
    Const FormatZeit As String = "YYY-MM-DD hh:mm:ss"
    
    intFile = FreeFile
    With ThisWorkbook
        strDatei = ThisWorkbook.Path & "\LogDatei_" & Replace(ThisWorkbook.Name, ".xlsx", "") & ".xls"
    End With
    
    Open strDatei For Append As #intFile
    
        If LOF(intFile) = 0 Then
            With Application.WorksheetFunction
                strZeit = "Zeitstempel"
                strZeit = strZeit & VBA.Space(.Max(0, Len(FormatZeit) - Len(strZeit)))
                strUser = "User"
                strUser = strUser & VBA.Space(.Max(0, lenUser - Len(strUser)))
                strZelle = "Zelle"
                strZelle = strZelle & VBA.Space(.Max(0, lenAdresse - Len(strZelle)))
                strOld = "alter_Wert"
                strOld = strOld & VBA.Space(.Max(0, lenWert - Len(strOld)))
                strNew = "neuer_Wert"
                strNew = strNew & VBA.Space(.Max(0, lenWert - Len(strNew)))
                strText = strZeit & strDELIM & strUser & strDELIM & strZelle & strDELIM & _
                strOld & strDELIM & strNew & strDELIM
            End With
            Print #intFile, strText
            strText = String(Len(strZeit), "-") & strDELIM & String(Len(strUser), "-") & strDELIM _
                & String(Len(strZelle), "-") & strDELIM _
                & String(Len(strOld), "-") & strDELIM & String(Len(strNew), "-")
            Print #intFile, strText
        End If
 
    For Each rng In Target.Cells
        If rng.Value <> mstrOld(rng.Row, rng.Column) Then
            With Application.WorksheetFunction
                strZeit = Format(Now, "YYYYMMDD_hhmmss")
                strZeit = strZeit & VBA.Space(.Max(0, Len(FormatZeit) - Len(strZeit)))
                strUser = Environ("username")
                strUser = strUser & VBA.Space(.Max(0, lenUser - Len(strUser)))
                strZelle = VBA.Replace(rng.Address, "$", "")
                strZelle = strZelle & VBA.Space(.Max(0, lenAdresse - Len(strZelle)))
                strOld = mstrOld(rng.Row, rng.Column)
                strOld = strOld & VBA.Space(.Max(0, lenWert - Len(strOld)))
                strNew = IIf(rng.Value = "", "#gelöscht", rng.Value)
                strNew = strNew & VBA.Space(.Max(0, lenWert - Len(strNew)))
                strText = strZeit & strDELIM & strUser & strDELIM & strZelle & strDELIM & _
                    strOld & strDELIM & strNew
                End With
                Print #intFile, strText
            End If
        Next
    Close #intFile
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 VBA LogFile anlegen
23.08.2019 13:06:54 Gast1789456123
NotSolved
23.08.2019 14:13:53 Gast10546
NotSolved