fre4ki
Goto Top

Excel - Werte in einer Zelle rechnen

Hallo zusammen,

hab folgendes Problem:

Es sollte in einer Zelle folgendes eingegeben werden:

z. B. 4+5+3 -> = 12 (Soll er automatisch rechnen)

z. B. 4*5+3 -> = 23 (Soll er automatisch rechnen)


In der nächsten Spalte soll er das entsprechend addieren/subtrahieren/multiplizieren oder dividieren (je nachdem welche rechenzeichen drinnen stehen, wie in meinem Beispiel oben).

Hat jemand eine Idee?

Mit Summe gehts nicht und mit Anzahl und Anzahl2 scheinbar auch nicht.

Content-Key: 79532

Url: https://administrator.de/contentid/79532

Printed on: April 19, 2024 at 00:04 o'clock

Member: Netzheimer
Netzheimer Jan 30, 2008 at 11:42:06 (UTC)
Goto Top
Feld A1: 4
Feld A2: 5
Feld A3: 3
Feld B1: =SUMME(A1:A3)
Feld B2: =A1*A2+A3
usw...

oder ist die Problematik eine andere?
Member: fre4ki
fre4ki Jan 30, 2008 at 16:12:14 (UTC)
Goto Top
Das oben beschriebene ist mir schon klar.

Es soll aber alles in eine Zelle geschrieben werden (Verwendungszweck = Aufmaß)
Member: Netzheimer
Netzheimer Jan 31, 2008 at 07:39:21 (UTC)
Goto Top
="Summe: "&SUMME(A1:A3)&" Mulipliziert "&A1*A2+A3

Ergebnis
Summe 12 Multipliziert 23

zum Aufbau:
= für Berechnung
"Summe: " als Text
& - es kommt noch etwas
SUMME(A1:A3) - Summieren
& - es kommt nochmal etwas
"Multipliziert " nächste Berechnung
& - es geht weiter
A1*A2+A3 nächste Berechnung

das kann man mit den "&" dazwischen fast unendlich forsetzen. Für den Text die Anführungszeichen am Anfang und am Ende nicht vergessen, sonst gibts Fehlermeldungen.
Member: fre4ki
fre4ki Jan 31, 2008 at 19:36:05 (UTC)
Goto Top
Vielen Dank für deine Antwort.

Aber das ist nicht das was ich mir vorgestellt hatte.

Der soll einfach anhang von den Rechenzeichen und Zahlen die in der Zelle stehen richtig rechnen...
Member: Netzheimer
Netzheimer Feb 01, 2008 at 09:18:45 (UTC)
Goto Top
Immer zum Berechnen ein "=" voranstellen, dann rechnet er alles was dahinter steht.
Member: Biber
Biber Feb 01, 2008 at 11:52:05 (UTC)
Goto Top
Moin FreAki4u,

falls Du noch ein Excel 97 hast, dann existiert noch direkt aufrufbar die Funktion Auswerten()/Evaluate().

Diese lässst sich in den aktuellen Excel-Versionen nicht mehr aufrufen, jedenfalls nicht über einen akzeptablen Weg. [Obwohl sie immer noch i,plementiert ist: wenn Du als Formel eingibst "=Auswerten(A1)", dann sagt Excel "ungültige Funktion und ändert den Funktionsnamen in "=Evaluate(A1)", der allerdings auch ungültig ist. M$...*kopfschüttel*.]

Also wäre die erste Wahl eine kleine VBA-Funktion:
Function FormelBerechnen(Cell As Range)
strformula = Replace(Cell.Formula, ",", ".")  
FormelBerechnen = Application.Evaluate(strformula)
End Function

Dann kannst Du mit "=FormelBerechnen(A1)" das tun, was Du vorhast.
Diese Zeile mit dem "Replace(komma durch Punkt)" ist nötig, falls Du mal Zahlen wie "2,5" oder "19,7" dabeihast.

Grüße
Biber
Member: fre4ki
fre4ki Feb 01, 2008 at 11:52:43 (UTC)
Goto Top
Kann man das auch irgendwie automatisch vorne ransetzen lassen?
Member: fre4ki
fre4ki Feb 01, 2008 at 12:40:49 (UTC)
Goto Top
Moin FreAki4u,

falls Du noch ein Excel 97 hast, dann
existiert noch direkt aufrufbar die Funktion
Auswerten()/Evaluate().

Diese lässst sich in den aktuellen
Excel-Versionen nicht mehr aufrufen,
jedenfalls nicht über einen akzeptablen
Weg. [Obwohl sie immer noch i,plementiert
ist: wenn Du als Formel eingibst
"=Auswerten(A1)", dann sagt Excel
"ungültige Funktion und ändert
den Funktionsnamen in
"=Evaluate(A1)", der allerdings
auch ungültig ist.
M$...*kopfschüttel*.]

Also wäre die erste Wahl eine kleine
VBA-Funktion:
Function FormelBerechnen(Cell As
> Range)
> strformula = Replace(Cell.Formula,
> ",", ".")  
> FormelBerechnen =
> Application.Evaluate(strformula)
> End Function
> 

Dann kannst Du mit
"=FormelBerechnen(A1)" das tun, was
Du vorhast.
Diese Zeile mit dem "Replace(komma
durch Punkt)" ist nötig, falls Du
mal Zahlen wie "2,5" oder
"19,7" dabeihast.

Grüße
Biber

Wenn ich das so mache dann gibt er mir #Name? oder #Wert! in der Zelle aus. Mach ich was falsch?

Makros sind aktiviert und der Text

Function FormelBerechnen(Cell As Range)
strformula = Replace(Cell.Formula, ",", ".")
FormelBerechnen = Application.Evaluate(strformula)
End Function

Wurde im VB Editor eingegeben.
Member: Biber
Biber Feb 01, 2008 at 12:48:27 (UTC)
Goto Top
Hmm, freaki4u,

zumindest bei meinem Excel (Office/Excel 2002 unter XP) funktioniert es genau so.
Und ich habe es in ein neues Modul eingegeben (also nicht in Tabelle1 oder "dieses Arbeitsblatt", falls das einen Unterschied macht).

Poste doch mal, welche Excel-Version Du hast... vielleicht gibts wieder irgendwelche Versionsunterschiede.

Grüße
Biber
Member: bastla
bastla Feb 01, 2008 at 15:27:57 (UTC)
Goto Top
Hallo Biber & freaki4u!

Und ich habe es in ein neues Modul eingegeben (also nicht in Tabelle1 oder "dieses Arbeitsblatt", falls das einen Unterschied macht).
Macht es, und ist so genau richtig.

Grüße
bastla
Member: fre4ki
fre4ki Feb 02, 2008 at 12:13:28 (UTC)
Goto Top
Ok nun funktioniert es bei mir auch.

Mein Fehler lag daran, dass ich unter Makros reingegangen bin und mit neu den
Namen FormelBerechnen angelegt habe, dann war der Name quasi doppelt vorhanden.

Thread kann somit geschlossen werden.

Vielen herzlichen Dank für eure Mühe face-smile