Am 22.03.2013 18:21:22 mir Tino eine geniale Funktion gepostet, mit der ich Fehlerwerte in Tabellen identifizieren kann.
Hilfreich wäre nun noch, wenn ich die Tabelle nicht zwingend als String eingeben muss, sondern wenn es auch funktioniert, wenn der Tabellenname in einer Zelle steht und ich darauf mittels INDIREKT referenzieren kann.
Wer kann weiterhelfen?
Danke
Peter
Option Explicit
Function ErrZelle(ParamArray varTabelle() As Variant) As String
Dim rng As Range, ArValue, n&, nn&, strFText$, varTab
For Each varTab In varTabelle
If CheckTabelle(varTab) Then
With Sheets(varTab).UsedRange
For Each rng In .Columns
If .Cells.Count > 1 Then
ArValue = rng.Value2
Else
ArValue = rng.Resize(, 2)
ReDim Preserve ArValue(1 To UBound(ArValue), 1 To 1)
End If
For n = 1 To UBound(ArValue)
For nn = 1 To UBound(ArValue, 2)
If IsError(ArValue(n, nn)) Then strFText = strFText & varTab & "!" & _
rng.Cells(n, nn).Address(0, 0) & "= '" & rng.Cells(n, nn).Text & "'; "
Next nn
Next n
Next
End With
Else
strFText = strFText & ">>>" & varTab & " nicht gefunden! "" Then strFText = Left$(strFText, Len(strFText) - 2)
ErrZelle = strFText
End Function
Function CheckTabelle(ByVal strTabName$) As Boolean
On Error Resume Next
CheckTabelle = ThisWorkbook.Sheets(strTabName).Index 0
On Error GoTo 0
End Function