Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
Hallo Bernd,
Du musstest auchdie Antwort von Uwe/Alwin
https://www.herber.de/forum/messages/1973497.html berücksichtigen.
Idealerweise gibt es in einer Tabelle nur Formeln, die auf eine andere Spalte auf die eigene Zeile (weil Tabelle nach dem Prinzip "verstehst Du eine Zeile, hast Du die ganze Tabelle verstanden" funktionieren).
Mit der Verwendung von "L12" anstatt "[@[Bestand]]" machst Du eine Abweichung zu den Tabellenformeln-Regeln.
https://support.microsoft.com/de-de/office/verwenden-von-strukturierten-verweisen-f%C3%BCr-excel-tabellen-f5ed2452-2337-4f71-bed3-c8ae6d2b276e
Da bei der Berechnung einem fortlaufenden Bestand immer auf die vorhige Zeile referiert werden muss, hast Du leider keien Wahl, die Regel zu verletzen.
Im Prinzip würde nach dem Erzeugen eine neue Zeile Reichen, wenn Du die Formel der erste Zeile auf die gesamte Spalte übertragt:
Sub BestandsFormel_erweitern()
Dim tbl As ListObject
Set tbl = Tb_Datenbank.ListObjects(1)
With tbl.ListColumns("Bestand")
.DataBodyRange.Formula = .DataBodyRange.Cells(1).Formula
End With
End Sub
Notfalls der Formel in zweite Zeile: .DataBodyRange.Cells(1).Formula (weil nur eine Spalte, ist Cells(2) die zweite Zelle, also in zweite Zeile)
Ein fortlaufende bestand kannst Du übrigen auch so berechnen (gilt für alle Zeilen):
=WENNFEHLER([@[Ab/Zu]]+L11;[@[Ab/Zu]])
VG
Yal