Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
792to796
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
792to796
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mathematische Glg. aus Zelle in Code implizieren?

Mathematische Glg. aus Zelle in Code implizieren?
26.08.2006 13:23:00
Matthias
Hallo Forum,
folgendes Problem:
Ich möchte, dass eine mathematische Gleichung, die in in eine Zelle im Sheet eingegeben wird, im Code verwendet werden kann.
Also in der Zelle steht z.B. "21.5*(VarA/1292)^2+6.5" als Text, und das soll dann in den Code eingebaut werden, so dass ich sagen kann

Sub irgendwas()
Dim VarA as Double
Dim VarB as Double
VarA = 5
VarB = Gleichung aus Zelle
End Sub

Und für VarB erhalte ich dann den korrekten Wert.
Das müsste doch möglich sein?
Vielen Dank schon mal.
Gruß
Matthias M.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mathematische Glg. aus Zelle in Code implizieren?
26.08.2006 14:06:01
fcs
Hallo Mathias,
das ist möglich. Jedoch nur über den Umweg, dass die Variablen während der Code-Ausführung im Workbook als Namen festgelegt werden. Mit der Ersetzung von "," durch "." kann man in der Tabelle die Formeln auch in "deutscher" Schreibweise in der Zelle eintragen.
Gruß
Franz
Beispiel-Code

Sub FormelAuswerten()
Dim Zelle As Range, varA As Double, varB As Double
Set Zelle = ActiveSheet.Range("B5") 'Zelle mit Formel-Text, z.B. : 21.5*(VarA/1292)^2+6.5
varA = 5
'Alle Variablen als Namen festlegen und Wert zuweisen
ActiveWorkbook.Names.Add Name:="varA", RefersTo:="=" & varA
varB = Application.Evaluate(Application.WorksheetFunction.Substitute(Zelle.Value, ",", ".")) 'EXCEL97
'  varB = Application.Evaluate(Replace(Zelle.Value, ",", ".")) 'neuere Exel-Versionen
'Namen wieder löschen
ActiveWorkbook.Names("varA").Delete
End Sub

Anzeige
AW: Mathematische Glg. aus Zelle in Code implizieren?
26.08.2006 14:51:58
Matthias
Hallo Franz,
vielen Dank.
Gruß
Matthias M.
AW: Mathematische Glg. aus Zelle in Code implizieren?
26.08.2006 16:22:46
Matthias
Hallo Franz,
ich bins nochmal.
Ich habs jetzt so drin, funktioniert aber nicht.
Fehlermeldung: Die Eingegebene Formel enhält einen Fehler

Public Function pNullFun(mDum) As Double
Dim Zelle As Range
Dim varB As Double
'AUSFÜHRBARE ANWEISUNG
With Sheets("Eingaben")
.Select
Set Zelle = ActiveSheet.Range("F24") 'Zelle mit Formel-Text, z.B. : 21.5*(VarA/1292)^2+6.5
'Alle Variablen als Namen festlegen und Wert zuweisen
ActiveWorkbook.Names.Add Name:="mDum", RefersTo:="=" & mDum
'varB = Application.Evaluate(Application.WorksheetFunction.Substitute(Zelle.Value, ",", ".")) 'EXCEL97
varB = Application.Evaluate(Replace(Zelle.Value, ",", ".")) 'neuere Exel-Versionen
'Namen wieder löschen
ActiveWorkbook.Names("mDum").Delete
End With
pNullFun = varB
'pNullFun = 17.5 * (mDum / 1292.6) ^ 2 + 6.5
'pNullFun = Sheets("Eingaben").Cells(24, 6).Value
End Function

Ich kann leider nicht rausfinden was ich falsch gemacht habe.
Vielleicht kannst Du ja was entdecken.
Danke schonmal.
Gruß
Matthias M.
Anzeige
AW: Mathematische Glg. aus Zelle in Code implizier
26.08.2006 15:27:38
Reinhard
Hi Matthias,
Option Explicit
Sub tt()
Dim VarA As Double, VarB As Double, Formel As String
VarA = 5
Formel = Replace(Range("A1").Text, "VarA", VarA)
Formel = Replace(Formel, "=", "")
VarB = Evaluate(Replace(Formel, ",", "."))
MsgBox VarB
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: Mathematische Glg. aus Zelle in Code implizier
26.08.2006 16:37:24
Matthias
Hallo Reinhard,
funktioniert leider auch nicht.
Ich habs so rein. Fehler: "Typen unverträglich" bei VarB = ..

Public Function pNullFun(mDum) As Double
Dim Zelle As Range
Dim VarB As Double
Dim Formel As String
With Sheets("Eingaben")
.Select
'VarA = 5
Formel = Replace(Range("F24").Text, "mDum", mDum)
Formel = Replace(Formel, "=", "")
VarB = Evaluate(Replace(Formel, ",", "."))
MsgBox VarB
End With
pNullFun = VarB
End Function

Dennoch danke für Deine Hilfe.
Gruß
Matthias
Anzeige
AW: Mathematische Glg. aus Zelle in Code implizier
26.08.2006 16:58:13
c0bRa
hio...
Wieso so kompliziert?
Modul1:
Option Explicit
Public Function formelauswerten(ByVal r As Range, ByVal VarA As Double)
    formelauswerten = Evaluate(Replace(r.Value, "VarA", VarA))
End Function

Aufruf via Zellfunktion:
A1: 21.5*(VarA/1292)^2+6.5
A2: =FORMELAUSWERTEN(A1;4)
Rückmeldung nicht vergessen...
c0bRa
I hacked 127.0.0.1
Anzeige
AW: Mathematische Glg. aus Zelle in Code implizier
26.08.2006 17:07:57
Reinhard
Hi Matthias,
ich hatte es getestet, da ging es.
Jetzt leicht geändert.
In Tabelle1!F24 steht:
21,5*(VarA/1292)^2+6,5
in einem Modul steht:
Option Explicit
Public Function pNullFun(mDum) As Double
Dim Zelle As Range, VarB As Double, Formel As String
On Error Resume Next 'weil Replace bei Nichtfinden fehler ergibt
With Sheets("Tabelle1")
.Select
Formel = Replace(Range("F24").Text, "VarA", mDum)
Formel = Replace(Formel, "=", "")
pNullFun = Evaluate(Replace(Formel, ",", "."))
End With
End Function

In eine beliebige Zelle eingegeben:
=pNullFun(100)
ergibt 6,628799279
Getestet mit Excel 2000, deutsch
Warum die Eingabe dess Terms in F24 als Formel, also mit vorangestelltem Gleichheitszeichen einen Fehler "#WERT" ergibt, weiß ich nicht, aber ohne Gleichheitszeichen klappt es.
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Mathematische Glg. aus Zelle in Code implizier
26.08.2006 17:36:02
Matthias
Hi,
ich blick da nicht durch. Geht nicht. Ich hab jetzt exakt deinen Code verwendet, zwar keine Fehlermeldung, aber pNullFun = 0.
Ich probier mal noch weng rum.
Gruß
Matthias M.
AW: Mathematische Glg. aus Zelle in Code implizier
26.08.2006 17:47:39
Reinhard
Hi Matthias,
vielleicht nützt dir die Datei etwas:
https://www.herber.de/bbs/user/36181.xls
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: Mathematische Glg. aus Zelle in Code implizier
27.08.2006 19:46:14
Matthias
Hi Reinhard,
ich hab jetzt Deinen Code aus dem Sheet, dass Du mir geschickt hast direkt bei mir rein kopiert. Jetzt gehts. Hab offenbar bei mir irgend nen "Hund" eingebaut, und hab ihn nicht bemerkt. Keine Ahnung.
Nochmal vielen Dank. Hat mir sehr geholfen.
Gruß
Matthias M.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige