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
-
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
-
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)
[...]