Optimierung relative Bezüge
10.03.2019 02:41:16
Richard
am Ende einer Tabelle möchte ich per Makro eine Ergebniszeile setzen, in der Summen (über die Funktion Teilergebnis, da Autofilter nutzbar sein sollen) gebildet werden.
Die Aufgabe, eine Ergebniszeile zu setzen, brauche ich vielfach, weswegen ich den Code dynamisch und damit modular aufrufbar gehalten habe.
Die Teilergebnisse brauchen einen relativen Bezug, da z.B. Teilergebnis(9;$G$2:$G$2603) die Nutzung der Autofilter aushebelt.
Die Aufgabe funktioniert mit folgenden Code (Auszug):
10 With ActiveSheet
20 For iSpalte = ersteSumme To lngletzteSpalte
30 Set rngZeile = .Range(Cells(lngletzteZeile + 1, iSpalte), Cells(lngletzteZeile + 1, iSpalte)) ' Zelle für Formeleintrag setzen
40 strFormelbezug = .Cells(2, iSpalte).Address & ":" & .Cells(lngletzteZeile, iSpalte).Address ' Adresse für Formelbezug auslesen
50 rngZeile.Formula = "=subtotal(9," & strFormelbezug & ")" ' Formel wird in Zelle geschrieben
60 rngZeile.Formula = Application.ConvertFormula(rngZeile.Formula, xlA1, xlA1, xlRelative, rngZeile) ' absolute Bezüge in Zelle in relative wandeln
70 End If
80 Next iSpalte
Die Zeile 50 schreibt eine Formel mit absoluten Bezügen [z.B. Teilergebnis(9;$G$2:$G$2603)]. Daher habe ich die Zeile 60 nach langen Recherchen in diversen Foren adaptiert und erhalte jetzt den gewünschten relativen Bezug ([z.B. Teilergebnis(9;G2:G2603)]. Eigentlich müsste es doch aber auch direkt in Zeile 40 bzw. 50 möglich sein, einen relativen Bezug zu setzen.
Könnt Ihr mir erklären, wie das geht?
Vielen Dank im Voraus