Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
388to392
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
388to392
388to392
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehler klassifizieren

Fehler klassifizieren
25.02.2004 00:10:40
Martin Kaiser
Hallo Leute,
wenn ich in PHP ein Fehler auftritt, erhalte ich immer eine klassifizierte Fehlermeldung mit Angabe der CodeZeile, in der der Fehler verursacht wird.
Gibt es so etwas auch auf einfache Weise für VBA?
Danke und viele Grüße
Martin

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler klassifizieren
25.02.2004 00:18:50
Bert
Nicht jeder Fehler ist für VBA eindeutig zu identifizieren. Für
die meisten Fehler kommt eine Fehlernummer und eine Fehlerbeschreibung.
Angabe der Zeilennummer aber nicht.
Bert
AW: Fehler klassifizieren
25.02.2004 08:13:26
Christoph Dümmen
Hallo Martin,
ich löse das Problem dadurch, dass ich nach abgearbeiteten Blöcken eine globale Variable fülle, welche bei Fehlern in der MsgBox angezeigt wird.
Das ist natürlich Zusatzarbeit aber in manchen Projekten angebracht.
Darüber hinaus lasse ich mir ggf. ein unsichtbares Log schreiben, welches mir beim Troubleshooting hilft.
Vielleichts hilft's
Christoph


Function LogWrite(ByVal strModul, ByVal strProcedure, ByVal strMessage, ByVal strStep)
'***Beschreibung*********************************************************************************************
' Ermittelt nächste freie Zelle im Logsheet und schreibt übergebene Meldungen in das Logsheet.
'***Historie*************************************************************************************************
' 11.02.2004: erstellt
'************************************************************************************************************
On Error GoTo Fehler
Dim As Integer
i = gshLog.Cells(Rows.Count, 1).End(xlUp).Row + 1
gshLog.Cells(i, 1) = gshLog.Cells(i, 1).Offset(-1, 0) + 1
gshLog.Cells(i, 2) = strModul
gshLog.Cells(i, 3) = strProcedure
gshLog.Cells(i, 4) = strMessage
gshLog.Cells(i, 5) = strStep
gshLog.Cells(i, 6) = Format(Now(), "dd/mm/yyyy hh:mm:ss")
Exit Function
Fehler:
    If Err.Number = 13 Then
        gshLog.Cells(i, 1) = 1
    End If
    Resume Next
End Function

     Code eingefügt mit Syntaxhighlighter 2.5



Sub LogCreate()
'***Beschreibung*********************************************************************************************
' Neues Blatt für Logdaten wird bereitgestellt
' und mit Vorgabewerten gefüllt. Via Prozedur 'LogWrite' wird der Log später Zeile
' für Zeile gefüllt
'***Historie*************************************************************************************************
' 2004-02-11: erstellt
'************************************************************************************************************
On Error Resume Next
Dim As Workbook
Dim As Range
Dim i
Set w = ActiveWorkbook
    Application.DisplayAlerts = False
    w.Worksheets(gstrcLogSheet).Delete                                             'löschen, falls vorhanden
    Application.DisplayAlerts = True
    Set gshLog = w.Worksheets.Add                                                   'Neues Logblatt
    gshLog.Move after:=w.Worksheets(w.Worksheets.Count)                             'an das Ende verschieben
    gshLog.Name = gstrcLogSheet                                                     'benennen
    
    With gshLog
        .Cells(1, 1) = gstrcAppName & ":"
        .Cells(1, 1).Font.Bold = True
        .Cells(2, 1) = "hfp Informationssysteme GmbH"
        .Cells(3, 1) = "Königsberger Straße 8"
        .Cells(4, 1) = "65779 Kelkheim"
        .Cells(5, 1) = "Tel : (06195) 9974 - 0"
        .Cells(6, 1) = "Fax : (06195) 9974 - 11"
        .Cells(7, 1) = "eMail: hfp@hfp.de"
        .Cells(9, 1) = "VBA-CodeVersion:"
        .Cells(9, 1).Font.Bold = True
        .Cells(10, 1) = "CodeLib:"
        .Cells(10, 2) = gstrcCodeLibVersion
        .Cells(11, 1) = "Modul:"
        .Cells(11, 2) = gstrcModule
        .Cells(14, 1) = "Reportparameter:"
        .Cells(14, 1).Font.Bold = True
    End With
Set gshData = w.Worksheets(gstrcDataSheet)
i = 1
Do While gshData.Cells(i, 1) <> ""
    gshData.Cells(i, 1).EntireRow.Copy
    gshLog.Cells(gshLog.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial
    i = i + 1
Loop
Set r = gshLog.Cells(gshLog.Cells(Rows.Count, 1).End(xlUp).Row + 4, 1)
With r
    r.Offset(0, 0) = "ID:"
    r.Offset(0, 1) = "Modul:"
    r.Offset(0, 2) = "Prozedur:"
    r.Offset(0, 3) = "Aktion:"
    r.Offset(0, 4) = "Schritt:"
    r.Offset(0, 5) = "Zeit:"
    r.EntireRow.Font.Bold = True
End With
gshLog.Cells(1, 1).Select
w.Worksheets(gstrcDataSheet).Activate                                           'Reportblatt aktivieren, damit Activesheet funzt
gstrIndErrMsg = ""
gstrIndErrID = "0"
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Anzeige
AW: Fehler klassifizieren
29.02.2004 13:00:42
Martin
Hallo Christoph,
das funktioniert richtig gut.
Danke für Deinen Tip.
Sorry, dass meine Antwort so lange gedauert hat.
Viele Grüße
Martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige