Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel VBA Formeln in Tabelle schreiben
#1
Hallo Forum,
guten Abend Excel Freunde,

kann mir bitte jemand bei der Fehlersuche in einer Datei helfen? Kann die Ursache leider nicht selbst finden.
Es sollen in bestimmte Spalten (in der Beispieltabelle die Spalte L) nach der Überschrift bis zu vorletzten Zeile eingefügt werden. Da die Tabelle immer unterschiedliche Zeilenanzahlen hat, verändert sich die Zeilenanzahl stets. Die Formeln müssen sich jeweils mit relativen Bezügen auf die jeweilige =Zeile beziehen: z. B. in Zeile 3 A3+B3=C3,
in Zeile 4 A4+B4=C4 usw.

Anbei der Code bisher.
Vielen Dank für Eure Unterstützung im Voraus. Beispieltabelle ist beigefügt.

Grüße
NobX

Code:
Sub Formeln_einfügen()

Dim lngZeile As Long
Dim lngZeileMax As Long
Dim wsf As WorksheetFunction
Dim f As String
Set wsf = Application.WorksheetFunction

With Tabelle1

lngZeile = 3
lngZeileMax = .Cells(Rows.Count, "L").End(xlUp).Row - 1
f = "=If(A3>0,D3*E3,0)"
For lngZeile = lngZeile To lngZeileMax
.Range(lngZeile & "L:L").Value = _
wsf.Value(f)

lngZeile = lngZeile + 1
Next

End With

End Sub


Angehängte Dateien
.xlsm   Test Formeln einfügen.xlsm (Größe: 17,79 KB / Downloads: 6)
Antworten Top
#2
Hallo,

da man mit VBA auch vortrefflich rechnen kann, macht es aus meiner Sicht keinen Sinn, mit Hilfe eines Makros Formeln in eine Liste zu schreiben.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallo,

Code:
Sub Formeln_einfuegen()
  With Tabelle1
    Range(.Cells(3, 12), .Cells(Rows.Count, 12).End(xlUp).Offset(-1)).Formula = "=If(A3>0,D3*E3,0)"
  End With
End Sub

Gruß Uwe
Antworten Top
#4
Hallo Klaus-Dieter,

vielen Dank für Deinen Tipp. Kannst Du mir in etwa sagen, wie ich die Berechnung direkt mit VBA erstellen könnte? - Hintergrund: ich bekomme jeden Monat eine Tabelle, in welcher in mehreren Spalten Formeln eingetragen werden müssen. Die Tabelle ist stets gleich aufgebaut, dadurch ließe sich das Makro sehr gut einsetzen. Formeln kann ich zwar von Hand eingeben und runterkopieren, - es verursacht eben immer einen Zeitaufwand, den ich mir gerne sparen würde. 


hallo Uwe,

kann die Lösung erst morgen testen und werde Dir dann berichten, bin aber guter Dinge, dass es klappt.  - Hätte ich die Lösung theoretisch auch mit meiner Vorgehensweise erreichen können? Bis zur Ermittlung der vorletzten Zeile hat der Code offensichtlich funktioniert. Nur nach der Eingabe des Strings tauchte dann der Fehler auf. 

Grüße und noch einen schönen Sonntag wünscht Euch

NobX
Antworten Top
#5
Hallo Uwe,

kurze Rückmeldung zu Deiner Lösung: klappt perfekt! - Danke!

Grüße

NobX
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste