Function geht nicht, äquivalente Sub geht
21.02.2005 10:32:37
Peter
folgende Funktion:
Public Function vorhaben2005(name As String) As Single
Dim mep As Worksheet, zeile%, summe As Single, j%
Application.Volatile
Set mep = ActiveWorkbook.Sheets("Jan - Dez 2005")
zeile = mep.Range("A18:A300").Find(What:=name).Row + 5
summe = 0
For j = 2 To 53
summe = summe + mep.Cells(zeile, j).Value
Next j
vorhaben2005 = (summe * 100) / 52
End Function
(Wenn der Code etwas umständlich aussieht, liegt es daran, dass ich schon versucht habe, mögliche Fehler auszuschließen).
Das Argument "name" steht in der Nachbarzelle, also z.B. die Funktion in B2 lautet vorhaben2005(A2). Als Rückgabe bekomme ich den Fehler #WERT!
Zum Test habe ich das Ganze auch als Sub geschrieben, gebe den Namen als explizit deklarierte Variable vor und gebe das Ergebnis in einer Messagebox aus:
Public Sub vorhaben()
Dim mep As Worksheet, zeile%, summe As Single, j%
Dim name$, v As Single
Set mep = ActiveWorkbook.Sheets("Jan - Dez 2005")
name = "Mustermann, Karl"
zeile = mep.Range("A18:A300").Find(What:=name).Row + 5
summe = 0
For j = 2 To 53
summe = summe + mep.Cells(zeile, j).Value
Next j
v = (summe * 100) / 52
MsgBox v
End Sub
Damit funktioniert es problemlos. Weiß jemand Rat?
Vielen Dank und Gruß
Peter