Folgende Funktion habe ich in meine PERSONL.XLS geschrieben (Public steht natürlich direkt vor Function, irgendwie formatiert's hier merkwürdig):
Public
Function guthaben(Name)
Dim eingabe As Worksheet, z%, s%
Set eingabe = ActiveWorkbook.Sheets("Eingabe")
z = eingabe.Range("B5:B44").Find(What:=Name, LookIn:=xlValues).Row
guthaben = 0
For s = 9 To 249 Step 6
If eingabe.Cells(2, s) <> "" And eingabe.Cells(2, s) <= Date Then
guthaben = guthaben + eingabe.Cells(z, s).Value
End If
Next s
End Function
Nachdem ich damit in einem Tabellenblatt immer den Fehler #WERT! angezeigt bekomme - die Funktion steht z.B. in C5 eines Tabellenblattes vom ActiveWorkbook
und lautet =guthaben(B5) - habe ich es im Direktbereich versucht und es geht ohne Probleme, wenn ich z.B. B5 aktiviert habe und ?guthaben(ActiveCell.Value) eingebe.
Der Fehler liegt eindeutig in der Zeile:
z = eingabe.Range("B5:B44").Find(What:=Name, LookIn:=xlValues).Row
Wenn ich die zum Testen auskommentiere und z=5 explizit zuweise, dann geht's.
An welcher Stelle bin ich blind?
Vielen Dank für sachdienliche Hinweise
Gruß
Peter