Herbers Excel-Forum - das Archiv

Aufruf einer UDF, Fehler Objekt erforderlich

Bild

Betrifft: Aufruf einer UDF, Fehler Objekt erforderlich
von: Christian

Geschrieben am: 29.03.2007 18:25:22

Hallo zusammen,
ich habe fogende UDF:

Function New_SumProduct(x As String, y As String) As Variant
Dim strMonat As String
Dim strArt As String
Dim strSumme As String
Application.Volatile
intLastRow = Sheets("Tabelle1").Range("F65536").End(xlUp).Row
strMonat = Application.Caller.Parent.Range("Tabelle1!A5:A" & intLastRow).Address ' contains  _
_
text
strArt = Application.Caller.Parent.Range("Tabelle1!C5:C" & intLastRow).Address ' contains   _
_
text
strSumme = Application.Caller.Parent.Range("Tabelle1!F5:F" & intLastRow).Address  '  _
contains values
New_SumProduct = _
Evaluate("SUMPRODUCT((" & strMonat & "=" & Chr(34) & x & Chr(34) & ")*(" & strArt & "=" &   _
_
Chr(34) & y & Chr(34) & ")*" & strSumme & ")")
End Function

Im Tabellenblatt funktioniert die auch einwandfrei, wenn ich sie aber im VBE mit z.B.
Range("K1") = New_SumProduct("x", "y")
aufrufen will kommt bei der Zeile
strMonat = Application.Caller.Parent.Range("Tabelle1!A5:A" & intLastRow).Address
die Fehlermeldung Laufzeitfehler 424, Objekt erforderlich.
Weiss jemand was ich falsch mache?
Vielen Dank!
Christian
Bild

Betrifft: AW: Aufruf einer UDF, Fehler Objekt erforderlich
von: Kurt
Geschrieben am: 29.03.2007 18:54:57
Hi,
Application.Caller ist die Zelle, aus der die UDF aufgerufen wird.
Hier gibt es keine aufrufende Zelle:
Range("K1") = New_SumProduct("x", "y")
Deine Konstruktion kann so nur als Funktion in einer Zelle funktionieren.
Bild

Betrifft: AW: Aufruf einer UDF, Fehler Objekt erforderlich
von: Christian
Geschrieben am: 29.03.2007 19:45:28
Hi Kurt,
ich habe jetzt mal Apllication.Caller.Parent weggelassen (hatte es mir so gegoogelt) und siehe da es geht:-).
Danke für die Info!
Grüße
Christian
Bild

Betrifft: AW: Aufruf einer UDF, Fehler Objekt erforderlich
von: Kurt
Geschrieben am: 29.03.2007 19:54:30
Hi,
Volatile sollte man nur einsetzen, wenn es nicht anders geht, in deinem Fall nicht nötig.
mfg Kurt
 Bild
Excel-Beispiele zum Thema "Aufruf einer UDF, Fehler Objekt erforderlich"
SVERWEIS auf geschlossene Arbeitsmappe aus Makro aufrufen Datenmaske beim Aufruf mit Nullen füllen
Makros in Abhängigkeit vom Zellennamen aufrufen Makroaufruf abhängig vom Zellwert
Excel für die Zeit eines Dialogaufrufes ausblenden Makros zeitgesteuert aufrufen
AddIn aus Makro aufrufen Name der aufrufenden Schaltfläche abfragen
Code aufrufen und löschen Als Zellkontextmenü Listbox aufrufen