ist es mit einem kleinen Makro möglich, alle Fehlerwerte mit Adresse innerhalb einer Arbeitsmappe in einem separaten Tabellenblatt aufzulisten [am Anfang via Makro einzufügen]?
Vielen Dank für Eure Unterstützung
Michael
Sub fehler()
' Recherche: excel vba if cell error
' Treffer u.a. stackoverflow
Dim c As Range
Dim i As Long
For Each c In Selection
' die dumme Methode:
If Mid(c.Text, 1, 1) = "#" Then MsgBox "Fehler " & c.Address & c.Text
' die gescheitere Methode:
If VarType(c.Value) = vbError Then MsgBox "VarType" & c.Address & c.Text
Next
i = 0
For Each c In Selection
If VarType(c.Value) = vbError Then
i = i + 1
Sheets("Fehler").Range("A" & i).Value = c.Address
Sheets("Fehler").Range("B" & i).Value = c.Text
Sheets("Fehler").Range("c" & i).Value = "'" & c.FormulaLocal
End If
Next
MsgBox "Anzahl Fehler: " & i
End Sub
Du markierst einen fehlerbehafteten Bereich und drückst Strg-Shift-M; die Fehler werden in das Blatt "Fehler" [das *musst* Du bitte händisch anlegen] in drei Spalten geschrieben: Adresse, Typ, Formel.
Option Explicit
Sub MyNewWorksheet()
Dim x&
For x = 1 To Worksheets.Count
If Worksheets(x).Name = "Fehler" Then
MsgBox "Ein Registerblatt mit Namen:(Fehler) existiert schon", vbCritical
Exit Sub
End If
Worksheets.Add after:=Sheets(Sheets.Count)
With ActiveSheet
.Name = "Fehler"
.Move Before:=Sheets(1)
End With
Next
End Sub
Gruß Matthias