Seite 1 von 1

Für Euch wahrscheinlich total simpel :)

Verfasst: Mo 21. Dez 2015, 22:17
von Dream-Teacher
Liebes Forum,

folgende Frage:
Nehmen wir an, in A1 steht folgende Formel (4*4)+(5*5) ohne "=" am Anfang! Also es wird die Formel dargestellt, nicht aber das Ergebnis.

Gibt es eine Möglichkeit, wie ich in A2 mit Bezug auf A1 das Ergebnis ausgeben kann? Also in diesem Fall sollte dann 41 in A2 stehen. Wenn dann aber in A1 die Formel angepasst werden sollte, soll sich auch in A2 das Ergebnis anpassen.

Danke und viele Grüße

D-T

Re: Für Euch wahrscheinlich total simpel :)

Verfasst: Mo 21. Dez 2015, 22:33
von Wanderer
Hallo,

ich würde einfach umgekehrt rangehen: Die Formel kommt mit führendem Gleichheitszeichen in A2
und in A1 schreibst Du

Code: Alles auswählen

=FORMEL(A2)
was Dir die Formel als Text anzeigt.
Jede Änderung der Formel in A2 wird dann auch in A1 angezeigt, das Ergebnis natürlich in A2.

MfG, Jörn.

Re: Für Euch wahrscheinlich total simpel :)

Verfasst: Mi 23. Dez 2015, 11:28
von Dream-Teacher
Hallo Jörn,

danke für die Antwort. Leider hilft das nicht weiter, die Formel "=Formel" kenne ich.

Gibts ggf. noch weitere Lösungsvorschlage?

Danke an alle und besonders an Jörn sowie beste Wünsche für die Weihnachtszeit.

Gruß D-T

Re: Für Euch wahrscheinlich total simpel :)

Verfasst: Mi 23. Dez 2015, 14:56
von F3K Total
Moin D-T,
hier ein paar Tipps zu einer Variante, von der ich weiß, dass sie funktioniert:
  • Man kann ein Makro, das die auslösende Zelle übergibt, z.B.

    Code: Alles auswählen

    Sub Berechne_Formel (oEvent)
    .
    .
    .
    End Sub
    an das Tabellenereignis "Inhalt geändert" hängen.
  • Da es dann auf alle Zellen der Tabelle reagieren würde, sollte man einfach vorher den Zellbereich festlegen, in dem es ausgeführt werden darf und dann per

    Code: Alles auswählen

    .queryintersection()
    prüfen, ob die auslösende Zelle in diesem Bereich liegt.
  • Den Text (5*5)+(4*4) liest man mit der Zelleigenschaft

    Code: Alles auswählen

    .String
    aus, sagen wir, wir nennen das Ergebnis sFormel
  • Die Nachbarzelle bestimmt man mit der Zelleigenschaft

    Code: Alles auswählen

    .CellRangeAddress
    Die RangeAddress kann man gleich für die .queryintersection benutzen. Man zählt zur aktuellen Spalte nur eins hinzu um die Zelle rechts zu bekommen.
  • Dann setzt man schlicht die

    Code: Alles auswählen

    .Formula
    der Zielzelle auf

    Code: Alles auswählen

    "=" & sFormel
  • Mit der Zelleigenschaft .FormulaResultType kann man leicht überprüfen, ob die Formel einen mathemathischen Wert erzeugt. Ist .FormulaResultType gleich eins, liefert die Formel ein Ergebnis, sonst liegt ein Fehler vor.
Simpel, nicht wahr?
Gruß R