ich muß aus einer Tabelle zuerst den Kunden raussuchen, und dann den Sachbearbeiter1 (bzw. 2, 3).
Dau habe ich ein Makro geschrieben, das auch funktioniert:
Sub FindeSB()
Dim iZeile As Integer, iSpalte As Integer, iWas As Integer
Dim cRange As String, cKunde As String, cSB As String
cKunde = "abcdefg"
iWas = 1
iZeile = Sheets(1).Cells.Find(cKunde).Row
cRange = "A" + CStr(iZeile) + ":" + "N" + CStr(iZeile)
iSpalte = Sheets(1).Range(cRange).Find(iWas).Column
cSB = Sheets(1).Cells(1, iSpalte)
End Sub
Nun wollte ich aus diesem Makro eine Funktion machen, die sieht so aus:
Public Function FindeSaBe(cKunde As Range, iWas As Integer) As String
Dim iZeile As Integer, iSpalte As Integer
Dim cRange As String
iZeile = Sheets(1).Cells.Find(cKunde).Row
cRange = "A" + CStr(iZeile) + ":" + "N" + CStr(iZeile)
iSpalte = Sheets(1).Range(cRange).Find(iWas).Column
FindeSaBe = Sheets(1).Cells(1, iSpalte)
End Function
Selbst wenn ich für cKunde und iWas in der Funktion feste Werte vorgebe, ist das Funktionergebnis #WERT!. Im Einzelschrittmodus kann ich feststellen, daß die Funktion in der Zeile
iZeile = Sheets(1).Cells.Find(cKunde).Row
hängenbleibt.
Was mache ich falsch / kann ich tun? Eigentlichist doch zwischen dem Makro und der Funktion kein Unterschied (mal von den Parametern und der Rückgabe abgesehen, aber zur Rückgabe kommt es ja gar nicht erst). Oder?
Vielen Dank schon mal
Michael