Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
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

Eintragen einer Formel

Eintragen einer Formel
25.10.2021 09:57:16
Mike
Moin zusammen!
Ich dachte bisher, ich kenne mich einigermaßen aus, aber ich verzweifel gerade an einer Aufgabe, die doch "eigentlich" gar nicht so schwer sein kann:
Ich möchte für die automatische Auswertung von Ergebnissen für die Bundesjugendspiele die erreichten Punkte über festgelegte Formeln berechnen lassen. Die Formel zu Berechnung lautet: "=(50 : Ergebnis - 3,70) : 0,0069" wobei das Ergebnis aus einer anderen Zelle kommt.

Sub Berechnung()
Ergebnis = Cells(4, 8)
Cells(4, 9).Formula = "=(50 / Ergebnis - 3,70) / 0,0069"
End Sub
Excel sagt immer nur "Anwendungs- oder objektdefinierter Fehler", die Onlinehilfe bringt mich daher nicht wirklich weiter.
Vielleicht kann mir ja hier jemand helfen, das Brett vor'm Kopf zu beseitigen ;-)
Danke und Gruß,
Mike

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eintragen einer Formel
25.10.2021 10:06:23
Werner
Hallo,
Formula = englische Formelschreibweise = Punkt als Dezimaltrennzeichen
Zudem musst du den Formelstring mit " beenden, die Variable mit & einbinden und danach mit & " den Formelstring wieder fortführen.
Sähe so aus: Cells(4, 9).Formula = "=(50 /" & Ergebnis & "- 3.70) / 0.0069"
Gruß Werner
AW: Eintragen einer Formel
25.10.2021 10:06:41
Klaus
ungetestet, Mike, so sollte es aber gehen:

Sub Berechnung()
Ergebnis = Cells(4, 8).value
Cells(4, 9).Formula = "=(50 / " &  Ergebnis & " - 3,70) / 0,0069"
End Sub
LG,
Klaus M.
AW: Eintragen einer Formel
25.10.2021 10:07:25
Rudi
Hallo,
Cells(4, 9).Formula = "=(50 / " & Ergebnis & " - 3.70) / 0.0069"
Gruß
Rudi
Anzeige
AW: Eintragen einer Formel
25.10.2021 10:20:14
Mike
Argl!!!!
Manchmal ist man einfach betriebsblind! Natürlich muss ich die Variable einbinden, ich Doof ;-)
Danke, dass ihr mich wieder auf den richtigen Weg gebracht habt!!
AW: Eintragen einer Formel
25.10.2021 10:55:44
Mike
Moin!
Da hab ich mich wohl zu früh gefreut.

Cells(4, 9).Formula = "=(50 / " & Ergebnis & "- 3,70) / 0,0069"
funzt leider nicht! Egal ob ich als Dezimalzeichen Punkt oder Komma nutze.
Wenn ich die Formel manuell in die Zelle eintrage und die Variable "Ergebnis" weglasse, also direkt einen Zahlenwert eintrage, dann klappt es. Also stimmt doch irgendwas mit dem Übergeben der Variablen noch nicht. Ich hab die im Editor mal als Überwachungsausdruck eingetragen und da sehe ich, dass der Wert aus der Zelle richtig übernommen wird. Wäre ja auch merkwürdig wenn nicht ;-)
Um auszuschließen, dass das an der Variablen liegt, habe ich jetzt einen Umweg gewählt und den String mit der Formel einer anderen Variablen zugewiesen:

Ergebnis = Cells(4, 8)
test = "=(50 / " & Ergebnis & "- 3,70) / 0,0069"
MsgBox test
Cells(4, 9).Formula = test
Die msgbox liefert dann "=(50 / 11,8 - 3,70) / 0,0069" aus, also genau das erwartete und benötigte Ergebnis.
Das wäre auch genau die Formel. Aber:
cells(4,9).Formula=Test
bringt wieder den Fehler!
Grummel....
Anzeige
AW: Eintragen einer Formel
25.10.2021 11:10:18
Daniel
nochmal:
wenn du mit .Formula eine Formel in eine Zelle schreibst, müssen die Dezimalzahlen mit dem Punkt als Dezimalzeichen geschrieben werden.
wenn du Kommas als Dezimalzeichen in VBA haben willst, musst du .FormulaLocal einsetzen:
also entweder:

Cells(4, 9).FormulaLocal = "=(50 / 11,8 - 3,70) / 0,0069"
oder

Cells(4, 9).Formula = "=(50 / 11.8 - 3.70) / 0.0069"
.Formula = Formel in englischer Schreibweise mit englischen Funktionnamen, Komma als Parametertrennzeichen und Punkt als Dezimalzeichen
.FormulaLocal: Formel in der Schreibweise der Ländereinstellung, so wie du sie in der Zelle siehst, dh in Deutschland mit deutschen Funktionsnamen, Semikolon als Parametertrennzeichen und dem Komma als Dezimalzeichen.
wenn du hier die Variable Ergebnis in die Formel einbindest, muss der Zahlenwert aus der Zelle in einen Text gewandelt werden. VBA macht das automatisch, verwendet aber vermutlich die deutsche Schreibweise hierfür, dh mit Komma.
also dann entweder:

Cells(4, 9).FormulaLocal = "=(50 / " & Ergebnis & " - 3,70) / 0,0069"
oder:

Cells(4, 9).Formula = "=(50 / " & Replace(Ergebnis, ",", ".") & " - 3.70) / 0.0069"
wobei ich es hier für sinnvoller halten würde, statt der Variable Ergebnis die Zellreferenz in der Formel zu verwenden.
Gruß Daniel
Anzeige
AW: Eintragen einer Formel
25.10.2021 10:56:08
Daniel
Hi
wenn du das Ergebnis aus einer anderen Zelle nehmen willst, wäre es dann nicht sinnvoller, in der Formel auf diese Zelle zu verweisen als den Umweg über die Variable zu gehen?
wenn du die deutsche Formelschreibweise (Funktionsnamen, Komma als Dezimalzeichen ) auch in VBA bevorzugst, kannst du auch .FormulaLocal einsetzen.
Dein Makro funktioniert dann allerdings nur in einem deutschen Excel. .Formula mit englischen Schreibweisen (Punkt als Dezimalzeichen) hingegen funktioniert immer, unabhängig von der Länderversion der Excelinstallation.

Cells(4, 9).FormulaLocal = "=(50 / $H$8 - 3,70) / 0,0069"
Gruß Daniel
Anzeige
AW: Eintragen einer Formel
25.10.2021 11:00:06
Mike
HEUREKA!
Das war's! Also nicht $H$8 sondern das .Formulalocal statt .Formula!
Nun läuft alles! Herzlichen Dank euch allen für eure Bemühungen!
Gruß,
Mike

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige