HERBERS Excel-Forum - das Archiv

Thema: Fehler auslesen | Herbers Excel-Forum

Fehler auslesen
Horst

Hallo Excel-Profis,
hat einer eine Ahnung, wie ich folgendes Makro verändern müsste, dass statt in Spalte A in Spalte FF nach dem aktuellen Systemdatum gesucht wird und dann die Zeile nicht nach rechts, sondern nach links bis zur Spalte A nach Fehlern (#Div/0, #NV, #Bezug etc.) überprüft wird.
Sofern ein Fehler auftritt, soll in einer MsgBox ausgegeben werden, in welcher Spalte der Fehler aufgetreten ist
Besten Dank für Eure Vorschläge!

Function fncMappenFehler(wb As Workbook) As Boolean
Dim wks As Worksheet, strMsg As String
Dim Zeile As Long, Spalte As Long
For Each wks In wb.Worksheets
With wks
For Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row To 1 Step -1
If .Cells(Zeile, 1).Value = Date Then
For Spalte = 2 To .Cells(Zeile, .Columns.Count).End(xlToLeft).Column
If IsError(.Cells(Zeile, Spalte).Value) Then
strMsg = strMsg & vbLf & .Name
GoTo NextSheet
End If
Next
End If
Next
NextSheet:
End With
Next
If strMsg = "" Then
fncMappenFehler = False
Else
fncMappenFehler = True
MsgBox "Fehler in ...:" & strMsg
End If
End Function

AW: Fehler auslesen
Daniel


Function fncMappenFehler(wb As Workbook) As Boolean
Dim wks As Worksheet, strMsg As String
Dim Zeile As Long, Spalte As Long
For Each wks In wb.Worksheets
With wks
For Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row To 1 Step -1
If .Cells(Zeile, "FF").Value = Date Then
For Spalte = .Cells(Zeile, .Columns.Count).End(xlToLeft).Column to 2 Step -1
If IsError(.Cells(Zeile, Spalte).Value) Then
strMsg = strMsg & vbLf & .Name
GoTo NextSheet
End If
Next
End If
Next
NextSheet:
End With
Next
If strMsg = "" Then
fncMappenFehler = False
Else
fncMappenFehler = True
MsgBox "Fehler in ...:" & strMsg
End If
End Function
Gruß, Daniel
AW: Fehler auslesen
Horst

Funktioniert super, danke!
Wie kann ich jetzt abschließend noch einbauen, dass bei Auftreten eines Fehlers der in Zeile 1 der jeweiligen Spalte stehende Variablenname zurückgegeben wird (in der MsgBox)?
AW: Fehler auslesen
Daniel

mit Cells(1, Spalte).Value
Gruß, Daniel
AW: Fehler auslesen
Horst

funktioniert, danke! Wenn mehr als in einer Spalte Fehler auftreten, wird immer nur die eine Spalte angezeigt. Wie schaffe ich es, dass alle fehlerhaften Spalten aufgelistet werden?
Thx!
AW: Fehler auslesen
Daniel

du darfst halt nicht mit "Goto NextSheet" die Schleife verlassen.
btw der offizielle Befehl zum vorzeitigen Verlassen einer For-Next-Schleife ist "Exit For", damit wird automatsch zum nächsten Befehl nach NEXT gesprungen.
die Verwendung von Gotos ist Programmiertechnisch gesehen extrem "Old School"
Gruß, Daniel
AW: Fehler auslesen
Horst

Danke! Es funzt.