String in variable umwandeln in vbaExcel?

2 Antworten

Wenn ich Dich richtig verstanden habe, möchtest Du eine Funktionsgleichung als Text eingeben (z.B. x^2 +4*x-9) und VBA soll damit rechnen. Zum Beispiel die Steigung der Funktion an einer Stelle x, die Du ebenfalls eingeben kannst, oder die Fläche unter der Kurve von x1 bis x2.

Du willst aber nicht algebraisch ableiten oder integrieren, sondern rein numerisch. Nette Idee!

Für die ersten Schritte hab ich mir etwas ausgedacht.

VBA fragt Dich nach der Funktionsgleichung und dem x-Wert und berechnet dann für den x-Wert den dazu gehörenden Funktionswert. Ich habe keinerlei Fehlerbehandlung eingebaut. Fehlerhafte Eingaben werden also nicht abgefangen.

Hier der quick 'n dirty Code:

Sub calculus()
formelstring = InputBox("Bitte Formelstring eingeben, z.B. x^2+4*x-7" _
        & Chr(13) & "Alle Rechenoperationen eingeben." _
        & Chr(13) & "* für Multiplikation nicht vergessen.")
inputformel = formelstring
Stuetzstelle = InputBox("Bitte X-Wert eingeben, für den der Funktionswert der Funktion" _
        & Chr(13) & inputformel _
        & Chr(13) & "berechnet werden soll.")

For i = Len(formelstring) To 1 Step -1
    If Mid(formelstring, i, 1) = "x" Then
        formelstring = Left(formelstring, i - 1) & "(" & Stuetzstelle & ")" & Mid(formelstring, i + 1, 999)
    End If
Next
' Hier kommt die eigentliche Berechnung
Ywert = Application.Evaluate(formelstring)
' 
Ausgabestring = "Der Wert der Funktion:" _
        & Chr(13) & inputformel _
        & Chr(13) & "An der Stelle: x=" & Stuetzstelle _
        & Chr(13) & "lautet:" _
        & Chr(13) & Ywert
MsgBox Ausgabestring
End Sub

Für eine Parabel und einen Sinus funktioniert es. Viel mehr habe ich nicht getestet - sollte ja nur als Anregung dienen. Viel Spaß damit. Ich hoffe, Du kannst etwas damit anfangen und freue mich auf Feedback.

Gruß

Hannes

Woher ich das weiß:Hobby

Hannes62a  16.03.2020, 20:02

Welche komplexen Formeln hast Du denn ausprobiert und welche funktionieren nicht? Deine Rückmeldung klingt eher so, als hättest Du den Ansatz weder ausprobiert noch verstanden.

1
Samudol 
Beitragsersteller
 16.03.2020, 19:25

Danke aber, ich wollte das Programm um komplexe Formeln zu integrieren die nicht immer deinem Schema entsprechen

1
Woher ich das weiß:Studium / Ausbildung – Gelernter Fachinformatiker, Freiberufl. Softwareentwickler