Formel mit variablem Inhalt in Zelle per VBA

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Formel mit variablem Inhalt in Zelle per VBA
von: Felix
Geschrieben am: 12.06.2015 13:17:40

Moin zusammen,
ich stehe vor dem Problem, dass ich eine Zelle eine Formel schreiben möchte.
Diese Formel soll bewirken, dass die beiden vorherigen Spalten multipliziert werden. Wichtig ist mir aber, dass eine Formel in die Zelle geschrieben wird.
Mein bisheriger Ansatz sieht wie folt aus:

Sub Commandbutton_Click()
Dim Zeile As Integer
Dim Spalte As Integer
Cells(144, 3).End(xlUp).Select
Zeile = Selection.Row
Spalte = Selection.Column
Cells(Zeile + 2, Spalte + 5).Formula = " = Produkt(" & Cells(Zeile + 2, Spalte + 4) & " ; " &  _
Cells(Zeile + 2, Spalte + 3) & ")"
End Sub
Das Problem ist hierbei, dass ein Leerzeichen hinter dem ersten " stehen muss, aber dadurch erkennt Excel das Ganze, wenn es in der Zelle steht, nicht mehr als Formel. Ohne das Leerzeichen taucht ein Fehler auf.
Kann mir hier jemand weiterhelfen?
Liebe Grüße
PS: ich habe schon etliche Varianten der Formel ausprobiert

Bild

Betrifft: AW: Formel mit variablem Inhalt in Zelle per VBA
von: Rudi Maintaire
Geschrieben am: 12.06.2015 13:25:29
hallo,
VBA spricht englisch!

Cells(Zeile + 2, Spalte + 5).Formula = _
  "=Product(" & Cells(Zeile + 2, Spalte + 4) _
  & "," & Cells(Zeile + 2, Spalte + 3) & ")"
Gruß
Rudi

Bild

Betrifft: AW: Formel mit variablem Inhalt in Zelle per VBA
von: Felix
Geschrieben am: 12.06.2015 13:39:23
Vielen Dank für den Hinweis, aber das habe ich auch ausprobiert. Ändert leider nichts am Problem.
Liebe Grüße

Bild

Betrifft: bei mir geht das. owT
von: Rudi Maintaire
Geschrieben am: 12.06.2015 13:45:03


Bild

Betrifft: AW: bei mir geht das. owT
von: Felix
Geschrieben am: 12.06.2015 14:51:58
Naja das Problem ist auch irgendwie, dass er die Werte, die in der Zelle stehen, in die Formel einsetzt und nicht den Verweis zur Zelle. Gibt es hierfür eine Lösung?

Bild

Betrifft: ja.
von: Michael
Geschrieben am: 12.06.2015 19:03:18
Hi zusammen,
kopier das mal in Deinen Code zum Testen, und es wird Dir ein Licht aufgehen:

MsgBox Cells(Zeile + 2, Spalte + 5).Address _
(RowAbsolute:=False, ColumnAbsolute:=False)
MsgBox Cells(Zeile + 2, Spalte + 5).Offset(0, -1).Address _
(RowAbsolute:=False, ColumnAbsolute:=False)
MsgBox Cells(Zeile + 2, Spalte + 5).Offset(0, -2).Address _
(RowAbsolute:=False, ColumnAbsolute:=False)
param1 = Cells(Zeile + 2, Spalte + 5).Offset(0, -1).Address _
(RowAbsolute:=False, ColumnAbsolute:=False)
param2 = Cells(Zeile + 2, Spalte + 5).Offset(0, -2).Address _
(RowAbsolute:=False, ColumnAbsolute:=False)
Cells(Zeile + 2, Spalte + 5).Formula = "=Product(" & _
param1 & "," & param2 & ")"
Die Klammern nach dem Address sorgen dafür, daß *keine* $-Zeichen (für absolute Verweise) ausgegeben werden.
Happy Exceling,
Michael

Bild

Betrifft: ja, Nachtrag
von: Michael
Geschrieben am: 12.06.2015 19:08:58


'oder so:
Cells(Zeile + 2, Spalte + 5).Formula = "=" & param1 & "*" & param2


Bild

Betrifft: AW: ja, Nachtrag
von: Felix
Geschrieben am: 15.06.2015 08:55:37
Super, vielen Dank! Ich habe es jetzt hinbekommen!

Bild

Betrifft: freut mich, danke für die Rückmeldung owT
von: Michael
Geschrieben am: 15.06.2015 19:23:33


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Formel mit variablem Inhalt in Zelle per VBA"