Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1120to1124
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
Inhaltsverzeichnis

Fehler suchen

Fehler suchen
Horst
Hallo Excel Freunde,
wie kann ich folgende Funktion umschreiben, sodass in der Spalte FF nach dem aktuellen Systemdatum und in dieser Zeile nach links bis zur Spalte A nach Fehlern wie #Div/0, #NV, #Bezug usw. gesucht wird?
Ergebis soll eine MsgBox sein, die anzeigt, in welcher Spalte der Fehler aufgetreten ist, indem sie die in Zeile A stehende Bezeichnung der Spalte ausgibt.
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler suchen
28.11.2009 23:02:08
IngGi
Hallo Horst,
folgender Code kommt in ein allgemeines Modul und bezieht sich dann auf das aktuelle Tabellenblatt. Wenn du den Code in das Modul eines Tabellenblattes kopierst, bezieht er sich immer auf dieses Tabellenblatt.
Sub Fehler_finden()

Dim rng As Range
Dim rngDatum As Range

Set rngDatum = Range("FF:FF").Find(Date)

If rngDatum Is Nothing Then
  MsgBox "Das aktuelle Datum konnte in Spalte FF nicht gefunden werden!", vbCritical
  Exit Sub
End If

For Each rng In Range(Range("A" & rngDatum.Row), rngDatum.Offset(0, -1))
  If IsError(rng) Then
    MsgBox "Der Fehler befindet sich in der Zelle " & rng.Address
    Exit Sub
  End If
Next 'rng 

MsgBox "Es konnte kein Fehler in Zeile " & rngDatum.Row & _
  " gefunden werden!", vbInformation

End Sub
Code eingefügt mit VBA in HTML 2.0.0.3size>
Gruß Ingolf
Anzeige
AW: Fehler suchen
29.11.2009 17:33:55
Horst
Hallo!
Ich bekomme die Fehlermeldung "Das aktuelle Datum konnte in Spalte FF nicht gefunden werden!", obwohl es in Spalte FF enthalten ist. Kann man nicht den folgenden Code verändern, sodass ausgehend vom aktuellen Systemdatum in Spalte 162 ("FF") statt nach rechts nach links bis einschließlich Spalte A gesucht wird?
Thx!
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
Anzeige
AW: Fehler suchen
30.11.2009 20:51:09
IngGi
Hallo Horst,
möglicherweise so (siehe abgesetzte Codezeile), allerdings weiß ich nicht wirklich, ob das funktioniert, da dein Codeschnipsel wirklich sehr klein ist (wie du an den Einrückungen siehst, umfasst er nicht mal alle angefangenen Kontrollstrukturen bis zu deren Ende). Die Zeile "GoTo NextSheet" kommt mir auch schleierhaft vor, die Sheets werden doch in einer For Each...Next-Schleife abgeklappert?
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 = 161 To 1 Step -1
      
      
        If IsError(.Cells(Zeile, Spalte).Value) Then
          strMsg = strMsg & vbLf & .Name
          GoTo NextSheet
        End If
      Next
Code eingefügt mit VBA in HTML 2.0.0.3size>
Findet er damit das Datum? Würde mich ehrlich gesagt wundern, da er wie mein Code nach einem Datum sucht und ich mal vermute, dass die Datumsangaben auf deinen Sheets Strings sind. Aber das ist natürlich nur spekuliert.
Gruß Ingolf
Anzeige
AW: Fehler suchen
01.12.2009 21:22:36
Horst
in dem Fall muss es heißen:
For Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row To 1 Step -1
If .Cells(Zeile, "FF").Value = Date Then
dann funktioniert's. Aber besten Dank! Frage ist bereits geklärt.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige