Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1400to1404
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
Formel aus Zelle in Userform berechnen
05.01.2015 11:49:38
Kevin
Hallo Liebes Forum,
ich versuche mich schon sehr lange an einem Problem und komme leider nicht weiter.
Meine Ausgangssituation:
1. Ich habe in einer Zelle eine Formel stehen zum Beispiel (X/Y)*Z
2. Dann habe ich eine Userform erstellt mit den 3 TextBoxen, wo ich die Werte für X, Y und Z eingeben kann.
3. Nachdem ich die Werte auf der Userform für X,Y und Z eingegeben habe soll auf der Userform in einem Label das Ergebnis der Gleichung erscheinen, wenn ich auf einen OK Button klicke.
Wie bekomme ich das hin?
Ich hoffe hier kann mir jemand helfen - Vielen vielen Dank im Vorraus!

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel aus Zelle in Userform berechnen
05.01.2015 11:55:29
Klaus
Hallo Kevin,
im Prinzip so:
Private Sub CommandButton1_Click()
Me.Label1.Caption = (TextBox1.Value / TextBox2.Value) * TextBox3.Value
End Sub
Das mit der Zelle habe ich nicht verstanden, vielleicht hilft eine Musterdatei?
Grüße,
Klaus M.vdT.

AW: Formel aus Zelle in Userform berechnen
05.01.2015 12:08:04
Kevin
Hallo,
Vielen Dank erst mal für die schnelle Antwort.
Anbei der Link zur Musterdatei :
https://www.herber.de/bbs/user/94758.xlsm
Wichtig ist dass sich die Formel ändern können, deshalb kann ich die Formel leider nicht im Makro hinterlegen so wie Sie es gemacht haben
Ich hoffe Sie können mir weiterhelfen. Vielen Dank!

Anzeige
AW: Formel aus Zelle in Userform berechnen
05.01.2015 12:16:53
Kevin
Hallo,
die Frage ist immernoch Offen - ich hatte das Kontrollkästchen im Forum beim letzten Post nicht aktiviert gehabt.
Gruß Kevin

AW: Formel aus Zelle in Userform berechnen
05.01.2015 12:57:24
Klaus
Hi Kevin,
darfst ruhig "du" zu mir sagen, ich nehme mir das ja auch heraus.
Im Prinzip so:
Private Sub CommandButton1_Click()
Dim MyFormula As String
MyFormula = Sheets("Tabelle1").Range("A1").Value
MyFormula = WorksheetFunction.Substitute(MyFormula, "X", Me.TextBox1.Value)
MyFormula = WorksheetFunction.Substitute(MyFormula, "Y", Me.TextBox2.Value)
MyFormula = WorksheetFunction.Substitute(MyFormula, "Z", Me.TextBox3.Value)
Me.Label5.Caption = Evaluate(MyFormula)
End Sub

Fehlerbehandlungen musst du selber einbauen.
Grüße,
Klaus M.vdT.

Anzeige
AW: Formel aus Zelle in Userform berechnen
05.01.2015 13:25:12
Kevin
Hallo Klaus M.vdT.,
Vielen Dank für die Lösung - das tut sehr gut.
Nun habe ich jedoch noch ein kleines Problem, welches ich zu Lösen habe.
Undzwar soll der Anwender jede beliebige Formel eingeben können, auch welche anders als mit X,Y oder Z.
Die verwendeten Variablen schreibt er rechts neben die Formel hin, sodass das Makro dort die Namen der Variablen entnehmen kann.
Nun bin ich mir nicht sicher wie man das programieren kann, dass das Makro die Variablen aus den Zellen neben der Formel entnimmt, und in die Userform über den Textboxes schreibt. Dann soll eben wie vorher die Eingabe anhand der in der Zelle stehenden Formel berechnet werden.
Anbei eine Musterdatei:
https://www.herber.de/bbs/user/94762.xlsm
Ich hoffe du kannst mir da weiterhelfen. Danke danke!
Gruß Kevin

Anzeige
AW: Formel aus Zelle in Userform berechnen
05.01.2015 13:26:12
Kevin
Hallo,
die Frage ist noch Offen - hatte vergessen gehabt wieder das Häckchen zu setzen.
Danke & Gruß Kevin

AW: Formel aus Zelle in Userform berechnen
05.01.2015 13:35:41
Klaus
Kevin,
dann musst du halt bei Substitute nicht "X" angeben, sondern den Inhalt der Zelle in der "X" steht ...
Private Sub CommandButton1_Click()
Dim MyFormula As String
Dim v1 As String
Dim v2 As String
Dim v3 As String
With Sheets("Tabelle1")
MyFormula = .Range("A1").Value
v1 = .Range("C1").Value
v2 = .Range("D1").Value
v3 = .Range("E1").Value
End With
MyFormula = WorksheetFunction.Substitute(MyFormula, v1, Me.TextBox1.Value)
MyFormula = WorksheetFunction.Substitute(MyFormula, v2, Me.TextBox2.Value)
MyFormula = WorksheetFunction.Substitute(MyFormula, v3, Me.TextBox3.Value)
Me.Label5.Caption = Evaluate(MyFormula)
End Sub
Oder, extrem verkürzt:
Private Sub CommandButton1_Click()
Dim MyFormula As String
With Sheets("Tabelle1")
MyFormula = WorksheetFunction.Substitute(.Range("A1").Value, .Range("C1").Value, Me.TextBox1. _
Value)
MyFormula = WorksheetFunction.Substitute(MyFormula, .Range("D1").Value, Me.TextBox2.Value)
MyFormula = WorksheetFunction.Substitute(MyFormula, .Range("E1").Value, Me.TextBox3.Value)
Me.Label5.Caption = Evaluate(MyFormula)
End With
End Sub
Das anpassen auf Zeile 2 und andere Tabellenblattnamen bekommst du selber hin, oder?
Grüße,
Klaus M.vdT.

Anzeige
AW: Formel aus Zelle in Userform berechnen
05.01.2015 13:36:05
Kevin
Hallo Klaus M.vdT.,
hat sich erledigt!!!! Vielen Dank!
ich habe einfach anstatt "X" , "Y" und "Z" in dem Substitute Befehl die Cells(x,x).Value eingetragen.
Danke und Gruß Kevin

Danke für die Rückmeldung!
05.01.2015 13:38:35
Klaus
.

Nachfrage...
05.01.2015 13:39:11
robert
Hi,
die Lösung von Klaus ist gut, aber warum können die
Variablen nicht immer X,Y Z sein?
Die Formel kann ja verschiweden sein.
Gruß
robert

AW: Nachfrage zu spät, da von Klaus erledigt :) o
05.01.2015 14:10:08
Klaus

AW: Formel aus Zelle in Userform berechnen
05.01.2015 14:36:53
EtoPHG
Hallo Kevin,
Ersetzt den gesamten Code in der Userform durch diesen.
Option Explicit
Dim sVar(2) As String
Private Sub CommandButton1_Click()
Dim sFormula As String
Dim lX As Long
sFormula = ActiveSheet.Cells(1, 1)
For lX = 0 To 2
sFormula = Replace(sFormula, sVar(lX), Me.Controls("TextBox" & (lX + 1)))
Next lX
On Error Resume Next
Label5.Caption = Evaluate(sFormula)
If Err.Number  0 Then
Label5.Caption = "Fehler in der Formel!"
Err.Clear
End If
On Error GoTo 0
End Sub
Private Sub UserForm_Activate()
Dim lX As Long
For lX = 0 To 2
sVar(lX) = ActiveSheet.Cells(1, lX + 3)
Me.Controls("Label" & (lX + 1)).Visible = sVar(lX)  ""
Me.Controls("Label" & (lX + 1)).Caption = sVar(lX)
Me.Controls("TextBox" & (lX + 1)).Visible = sVar(lX)  ""
Next lX
End Sub
Dieser funktioniert mit max. 3 Variablen aber auch nur mit 1er oder 2.
Gruess Hansueli
Anzeige

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige