ich möchte in VBA selbstgeschriebene Funktionen (Public-Function) von einer Sub-Prozedur aufrufen, nur: Wie mache ich das?
In der Sub-Prozedur ermittle ich aus einer Excel-Datei einen String (Vertragsnummer). Dieser String ist bereits der Name der Funktion. Die Funktion benötigt einen Wert zur Berechnung, den ich auch aus der Tabelle bekomme.
Bislang übernehme ich die beiden Werte in Variablen in der Sub-Prozedur. Nun weiss ich allerdings nicht, wie ich
a) mit diesen Werten die eigene Funktion aufrufe
b) den Rückgabewert der Funktion in eine Variable schreibe, die ich dann zurück in die Zelle schreiben kann.
Das ganze läuft in einer For-Schleife, da mehrere Zeilen durchlaufen und mehrere Verträge berechnet werden müssen.
Ich habe im Archiv gesucht, aber wahrscheinlich die falschen Fragen gestellt...
Weiß jemand Rat?
Vielen Dank schonmal
Dietrich
Auszug aus Sub-Prozedur:
'Ermittlung der variablen Werte (Vertrag/Menge)
Vertrag = Workbooks(datei).Worksheets("Transfer").Range("f" & i).Value
Anzahl = Workbooks(datei).Worksheets("Transfer").Range("g" & i).Value
'Aufruf der Funktion (Betrag soll den Rückgabewert enthalten)
Betrag= "Hier weiss ich nicht weiter :-)"
Beispiel für die Funktion (ist Public, wird hier aber irgendwie immer abgeschnitten...):
Function CCIR47(Anzahl) As Currency
Select Case Anzahl
Case Is = ""
Exit Function
Case Is <= 5
Betrag = 575
CCIR47 = Betrag
Case Is > 5
Betrag = (Anzahl - 5) * 0,12235 + 575
CCIR47 = Betrag
End Select
End Function
In dem Beispiel entspräche
Vertrag aus Sub-Prozedur -> CCIR47
Anzahl aus Sub-Prozedur -> Anzahl aus Public Function