Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - .Formula Code

VBA - .Formula Code
14.02.2021 08:24:44
Andl
Hallo Zusammen,
ich habe in Excel folgenden Code, welcher funktioniert:
=WENN((M$11-WENN(C$80;-C$8;0))>0;MAX(-M$11);0)
Nun möchte ich das Ergebnis "festfrieren", so dass er sich nicht verändert.
Dazu habe ich die Idee mit der .Formula Code zu arbeiten, und mir dann daraus einen Prozedur überlege:
Sub Formula()
Tabelle1.Cells(16, 13).Formula = "=WENN((M$11-WENN(C$80;-C$8;0))>0;MAX(-M$11);0)"
oder
Tabelle1.Range("M16").Formula = "=WENN((M$11-WENN(C$80;-C$8;0))>0;MAX(-M$11);0)"
End Sub

leider funktionieren die beiden Codes nicht - kann ich hier irgendwas falsch machen?
Gibt es die Möglichkeit gleich den Wert über den Formula-Code in die Zelle zu schreiben - in etwas
so:
Tabelle1.Cells(16, 13).Formula.Value = "=WENN((M$11-WENN(C$80;-C$8;0))>0;MAX(-M$11);0)"
Vielen Dank für eure Hilfe.
Beste Grüße
Andl

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - .Formula Code
14.02.2021 08:37:18
Hajo_Zi
Hallo Andi,
VBA ist emglisch also Formel in Englisch oder FormulaLocal und ich glaube ; ersetzen durch ,
Mit Formel kannst Du keinen festen Wert eintragen.

AW: VBA - .Formula Code
14.02.2021 08:57:10
Daniel
Hi
Bei .Formula muss die Formel, die du übergibst immer in englisch geschrieben sein, dh
- englische funktionsnamen (If statt Wenn, Max ist gleich)
- Komma statt Semikolon als Parametertrennzeichen
- Punkt als Dezimalzeichen.
Du kannst aber auch die deutsche Schreibweise verwenden, dass musst du aber angeben, indem du .FormulaLocal anstelle von .Formula verwendest.
Erstes hat den Vorteil, dass der Code in jeder Länderverison funktioniert, zweites funktioniert nur mit der Länderversion, für die es geschrieben wurde.
Wenn du das berechnungsergebnis dann fest in der Zelle haben willst, gibts zwei Möglichkeiten:
a) erst die Formel in die Zelle schreiben und dann das Ergebnis fixieren:
Range("A1").Formula = "=Deine Formel"
Range("A1").Formula = Range("A1").Value

b) in VBA das Ergebnis berechnen und gleich in die Zelle schreiben:
Range("A1").Value = Evaluate("Deine Formel in englisch")
Gruß Daniel
Anzeige
AW: VBA - .Formula Code
14.02.2021 09:23:15
Andl
Hallo Zusammen,
hat funktioniert.
vielen Dank für Deine Hilfe Daniel - finde deine Erklärungen immer sehr gut und vollumfänglich Danke Dir.
Danke auch Dir Hajo.
Schönen Sonntag.
beste Grüße
Andl

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige