Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: FlorianF am Februar 16, 2017, 11:34:47 Vormittag

Titel: Office 2016 Formel mit variablem Bezug in For-Next-Schleife einer Prozedur übergeben
Beitrag von: FlorianF am Februar 16, 2017, 11:34:47 Vormittag
Hi Leute,

ich lasse mit folgendem Code eine Formel in einen Zellbereich schreiben

    Dim rngFormelBetrag As Range
    Dim rngZelleFormel As Range
    Dim lngTitelzeileOP As Long
    Dim lngZeilen As Long, lngZeile As Long
    Dim strFormelBetrag As String
   
    'Feststellen wieviele Titelzeilen es gibt bis die Daten beginnen
    lngTitelzeileOP = Application.Names("TitelzeileOP").RefersToRange.Row
    'Ermittlung der Zeilenanzahl in der Daten stehen
    lngZeilen = tblOPDeb.UsedRange.Rows.Count - lngTitelzeileOP
   
    'Formel zur Ermittlung des positiven bzw. negativen Betrag als Summe von Soll und Haben eintragen
    Set rngFormelBetrag = tblOPDeb.Range("CN2:CN" & lngZeilen)
    tblOPDeb.Range("CN1").Value = "Betrag"         'Spaltenüberschrift festlegen
    For Each rngZelleFormel In rngFormelBetrag
        lngZeile = rngZelleFormel.Row
        strFormelBetrag = "=F" & lngZeile & "-G" & lngZeile     'Formel "=F2-G2"
        rngZelleFormel.Formula = strFormelBetrag
    Next
    'Formatierung der Spalte als Betrag
    tblOPDeb.Range("CN:CN").NumberFormat = "#,##0.00"

Nun ist es so, das ich verschiedene Formeln in verschiedene Spalten eintragen muss und ich hier immer die Zeilennummer als Teil der Formel benötige. Ich würde das eintragen also gerne in eine separate Prozedur auslagern und nur die Bereiche und die entsprechende Formel als Parameter übergeben. Aber wie baue ich die Formel zusammen die ich übergeben will, da sich diese ja durch die For-Nex-Schleife anhand der Zeilennummer ermittelt?

Beste Grüße
Flo
Titel: Antw:Office 2016 Formel mit variablem Bezug in For-Next-Schleife einer Prozedur übergeben
Beitrag von: FlorianF am Februar 16, 2017, 14:35:12 Nachmittag
Hab es mittlerweile selbst gelöst, ob effizient weiss ich nicht aber es funktioniert. Das sind die für mich "entscheidenden" Code-Zeilen für die Interessierten  ;)

Der Aufruf der Sub
[...]
strFormel = "=F#Zeile#-G#Zeile#"
FormelEinfuegen tblOPDeb, "CN", strFormel, "Betrag", "#,##0.00"
[...]

In der Sub
[...]
strFormelVariabel = Replace(strFormel, "#Zeile#", lngZeileAktuell)
[...]