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

VBA Zelle mit Formel füllen variabel

Forumthread: VBA Zelle mit Formel füllen variabel

VBA Zelle mit Formel füllen variabel
17.09.2025 18:00:54
Rudolf Nobby
Hallo Fachleute,
ich habe folgendes Problem in einem Makro:
Es gibt eine Zelle, deren Wert ist ein Produkt aus einer Zahl multipliziert mit dem Wert der Zelle davor.

In der Zelle A2 steht also 200 weil in der Zelle A1 davor 100 steht und sich damit "=A1*2" angezeigt wird.

Mit

formelString = Sheets("Tabelle1").Range("A2").Formula

bekomme ich die Formel auch angezeigt.

Jetzt möchte ich den Wert von 2 in der Formel als Variable verändern und in die Zelle A2 eintragen.
Es soll also z.B. über die Variabe Faktor = 4 in der Zelle A2 "=A1*4" stehen.

Ist sicher ganz einfach, aber ich krieg das nicht hin.

Vielen Dank für je Hilfe

Nobby
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zelle mit Formel füllen variabel
17.09.2025 18:11:23
daniel
Hi

Faktor = 4

Range("A2").Formula = "=A1*" & Faktor


Gruß Daniel
AW: VBA Zelle mit Formel füllen variabel
17.09.2025 18:33:40
Rudolf Nobby
Ich habe leider vergessen, dass der Faktor ein Euro Betrag ist. Also 10,90

Aber schon mal vielen Dank
Nooby
AW: VBA Zelle mit Formel füllen variabel
17.09.2025 18:56:39
Rudolf Nobby
Dim ErgebnisText As Variant

Range("F10").Formula = "=E10*" & ErgebnisText

ErgebnisText ist "300,40"
Anzeige
AW: VBA Zelle mit Formel füllen variabel
17.09.2025 21:30:42
Yal
Hallo Nobby,

dein Nachtrag ist leider nur zu verstehen, wenn man sonst alles weißt, was in deiner Kopf vorliegt. Aber nicht in deiner Erklärung.
Warum ist die Lösung von Daniel nicht passable? Was fehlt? Was wurde übersehen?

Ohne substanzielle Erweiterung deiner Erklärung kommt man nicht weiter.

Wenn es an dem Datentyp liegt, sollte die Variable vom Typ Single oder Double sein: Zahl mit Nachkomma:
Sub Berechnung()

Dim Faktor As Double

Faktor = 300.4 'in VBA herscht englische Daten-Format, also Punkt als Dezimal-Trennzeichen
Range("F10").Formula = "=E10*" & Faktor
End Sub
Alterantiv:
Sub Berechnung()

Const ErgebnisText As Double = 300.4

Range("F10").Formula = "=E10*" & ErgebnisText
End Sub
Oder mit Parameter-Übergabe:
Sub Berechnung(Faktor As Double)


Range("F10").Formula = "=E10*" & CStr(Faktor)
End Sub

Sub Test()
Berechnung 300.4
End Sub


VG
Yal
Anzeige
AW: VBA Zelle mit Formel füllen variabel
17.09.2025 22:02:18
Rudolf Nobby
Hallo Yal,

dann versuche ich mein Problem weiter zu verdeutlichen.

Mit
formelString = Sheets("Tabelle1").Range("A2").Formula
bekomme ich die Formel auch angezeigt. Da steht "=A1*100,4"
Der Faktor rechts ist eine Dezimalzahl mit Komma.
Angezeigt in Excel wird natürlich der Wert des Produkts. Wenn in A1 die Zahl 10 steht, wird also 1004,00 angezeigt.
Ich möchte jetzt variabel den Faktor ändern, so dass in A2 zb. "A1*108,4" steht und damit 1084,00 angezeigt wird.

Ich hoffe, es wird dadurch klarer.
Viele Grüße und guten Abend
Nobby


Anzeige
AW: VBA Zelle mit Formel füllen variabel
17.09.2025 22:13:26
Yal
Hallo Nobby,

und wo kommt diese Faktor her? Vom Erzengel Gabriel? Oder erwartest Du, dass Excel deine Gedanken lesen kann?

(Sorry für die etwa provokative Formulierung, aber Du musst verstehen: man kann nur programmieren, was man auch vollständig erklären+formulieren kann. Ist die Erklärung unvollständig, wird eben irgendwas programmiert, aber nicht was Du willst. "Unvollständige Programmierung" kann es nicht geben.)

VG
Yal


Anzeige
AW: VBA Zelle mit Formel füllen variabel
18.09.2025 12:05:06
Rudolf Nobby
Hallo Yal,

wo der Faktor herkommt ist doch egal. Er muss halt nur definiert sein, und einen Dezimalwert haben. Das hat selbst Daniel verstanden. Nur halt kein Integer. Sonst hat die Lösung von ja funktioniert. Wer seinen Code ausprobieren will brauch nur eine Excel-Datei mit 2 Zellen in einer Spalte erstellen. Die zweite Zelle mit der Formel auslesen und dann diese Zelle mit einem neuen Faktor abspeichern.
VG
Nobby
Anzeige
AW: VBA Zelle mit Formel füllen variabel
18.09.2025 13:22:42
daniel
hi
wenn es eine Dezimalzahl ist, die du in die Formel einbauen willst, dann hast du das Problem, ob die Zahl dann hast du das Problem dass du aufpassen musst, ob die deutsche Zahlenschreibweise (Dezimal-Komma) oder die amerikanische Schreibeweise (Dezimal-Punkt) vorliegt und welche gerade benötigt wird.
schreibst du die Formel mit .Value oder mit .Formula in die Zelle, dann wird die amerikanische Schreibweise benötigt
schreibst du die Formel mit .FormulaLocal in die Zelle, wird die deutsche Schreibweise benötigt.
die an dieser Stelle verwendete implizite Typumwandlung wird die deutsche Schreibweise mit Komma verwenden.
dh du solltest das dann in etwas so programmieren.
dim Faktor as Double

Faktor = ... wie auch immer
Range("A2").FormulaLocal = "=A1*" & Faktor


Gruß Daniel
Anzeige
AW: VBA Zelle mit Formel füllen variabel
18.09.2025 16:12:35
Rudolf Nobby
Hallo Daniel,

vielen Dank für Deine konstruktive Lösung. Genauso gehts. Weil bei mir der Faktor ein ausgelesener String ist muss ich jetzt nur noch den String in eine Dezimalzahl umwandeln. Aber ich denke, dass ich das schon schaffen werde! Ich habe die Frage jetzt noch offen gelassen, damit ich mich mit Bedanken / gefällt mir bedanken kann.

Herzliche Grüße Norbert
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige