Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Formel per Makro in Zelle schreiben - Dezimalzahl-Problem?

Forumthread: Formel per Makro in Zelle schreiben - Dezimalzahl-Problem?

Formel per Makro in Zelle schreiben - Dezimalzahl-Problem?
13.01.2025 16:43:28
_Michael_
Hallo erstmal in die Runde. Bin neu hier und habe in der Vergangenheit rein lesend schon einige wertvolle Tipps im Forum gefunden. Zu diesem Thema komme ich aber nicht weiter. Vielleicht hat jemand einen Tipp?

Habe das Problem schon stark vereinfacht und auf folgendes reduziert:

Ausgangslage:
Ich habe in Excel einen Zellbereich (Beispiel: B4:I4), in dem Maschinenauslastungen in Prozent stehen.
Außerdem gibt es zwei Eingabefelder, die die Eingabe von zusätzlichen Auslastungen (in Prozent) erlauben. (Beispiel: Zellen B9 & B10)

Ich möchte mit VBA eine Formel in Zelle "L3" schreiben, die die maximale Auslastung aus dem Zellbereich B4:I4 bestimmt und die beiden zusätzlichen Auslastungen hinzurechnet (multipliziert). Ich will explizit die Formel schreiben und nicht über VBA rechnen, damit auch Kollegen ohne VBA-Kenntnisse den Rechenweg nachvollziehen können.

Gewünschte Formel (wenn in den beiden Eingabefeldern B9 und B10 die Werte 2% und 0,5% stehen):

=MAX(B4:I4)*1,02*1,005


Das versuche ich mit folgendem Code:

Sub Adder()


Dim Adder1 As Double
Dim Adder2 As Double

Adder1 = Range("B9").Value
Adder2 = Range("B10").Value

Range("L3").Formula = "=MAX(B4:I4)*(1+" & Adder1 & ")*(1+" & Adder2 & ")"

End Sub



Mein Code bringt Laufzeitfehler 1004.
Bin mir ziemlich sicher, dass das Problem irgendwas mit den Dezimaltrennzeichen zu tun haben muss. VBA rechnet mit ".", in der Formel bräuchte ich aber ein ",". Wie kann ich das beheben?
Trage ich für die beiden Variablen ganze Zahlen ein, funktioniert alles.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel per Makro in Zelle schreiben - Dezimalzahl-Problem?
13.01.2025 16:56:27
daniel
nein, du irrst.
es ist genau anders rum.
dein VBA wandelt intern die Zahlen in Text korrekt nach deutscher Regel mit Komma.
bei .Formula muss die Formel aber amerikanisch mit Punkt geschrieben sein.

eine Möglichkeit wäre, die Formel auf Deutsch in die Zelle zu schreiben:
Range("L3").FormulaLocal = "=MAX(B4:I4)*(1+" & Adder1 & ")*(1+" & Adder2 & ")"

wenn du auf .Formula bestehst, musst du selbst die Kommas in Punkte wandeln:
Range("L3").Formula = "=MAX(B4:I4)*(1+" & Replace(Adder1, ",", ".") & ")*(1+" & Replace(Adder2, ",", ".") & ")"


aber wäre es nicht sinnvoller, die Werte direkt aus den Zellen zu lesen, auch in der Formel? ggf mit fixierung auf die Zelle, damit diese Werte auch dann genommen werden, wenn du die Formel kopierst?
Range("L3").Formula = "=MAX(B4:I4)*(1+$B$9)*(1+$B$10)"


Gruß Daniel



Anzeige

Forumthreads zu verwandten Themen

Anzeige