Nun gut, du kannst dir einen Bereich definieren über Einfügen-Namen-Definieren.
Ich nenn das Ding jetzt einfach mal „BEREICH“, welcher sich auf:
=INDIREKT(A1)
bezieht, wobei in A1 dann der konkrete Bereich steht.
Schreibst du in A1 jetzt B1:B100, sucht er im Bereich B1:B100.
Nun kannst du dich in der Teilergebnisformel auf „Bereich“ beziehen, also =Teilergebnis(109;Bereich).
Dies ist der Weg ohne VBA, den ich immer bevorzuge, da VBA langsam ist.
Aber okay, über VBA gehst du folgendermaßen vor:
Suche dir zunächst ein Ereignis, in das du den Code einfügst bzw. nimm ne Schaltfläche dafür.
Die Zelle, in der das Ergebnis steht, sei A1. Suchbereich (Konstante) ist B1:B100.
const suchbereich = "B1:B100"
' schreibt die Formel rein, liefert Ergebnis
Range("A1").FormulaLocal = "=Teilergebnis(109,"&suchbereich&")"
' wandelt die Formel in feste Zahl um
Range("A1").Copy
Range("A1").Pastespecial xlPastevalues
LG
Chris