Registriert seit: 04.05.2016
Version(en): 2010
Hallo,
ich habe mir eine VBA Userform erstellt, ein kleiner rechner neben bei,
dort sind 2 Felder wo man zahlen eingeben soll und eine Checkbox die man gegebenenfalls anklicken kann(diese Checkbox bewirkt das ergebnis mal 2)
ich will die 2 Eingabe felder zwischen speichern als Numerische Variablen, diese sollen dann multipliziert werden, Wenn Checkbox True dann das, sonst das
am Ende soll mir das Ergebnis in einem dritten Feld ausgegeben werden, ich bekomme es leider nicht hin :(, ich hoffe ihr könnt mir helfen.
Public Laufzeit As Integer
Public Monatsbeitrag As Integer
Public Ergebnis As Integer
Private Sub CommandButton1_Click()
'Dim Laufzeit As Integer
'Dim Monatsbeitrag As Integer
Dim RisikoLV As Integer
Dim Ergebnis As Integer
Lauftzeit = TextBox3_Change.Text
Monatsbeitrag = TextBox2_Change.Text
If CheckBox1 = True Then
Ergebnis = Laufzeit * Monatsbeitrag * 12 * 2
Else
Ergebnis = Laufzeit * Monatsbeitrag * 12
End If
Unload Me
TextBox4.Show
End Sub
ich hoffe ihr könnt mir helfen :)
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
wenn mit dem dritten Feld die TextBox4 gemeint ist.
Code:
Private Laufzeit As Integer
Private Monatsbeitrag As Integer
Private Ergebnis As Integer
Private Sub CommandButton1_Click()
'Dim Laufzeit As Integer
'Dim Monatsbeitrag As Integer
Dim RisikoLV As Integer
Dim Ergebnis As Integer
Lauftzeit = TextBox3_Change.Text
Monatsbeitrag = TextBox2_Change.Text
If CheckBox1 = True Then
Ergebnis = Laufzeit * Monatsbeitrag * 12 * 2
Else
Ergebnis = Laufzeit * Monatsbeitrag * 12
End If
Unload Me
TextBox4.Value = Ergebnis
'TextBox4.Show 'eine Textbox hat keine Show-Methode
End Sub
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 14.04.2014
Version(en): Office 2013/2016/2019/365
03.06.2016, 07:14
(Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2016, 07:14 von chris-ka.)
Hi,
der Code ist etwas sinnfrei
Change kann nicht bei Klick verwendet werden.
TextBox.show ? heißt die Userform Text box?
Code:
Option Explicit
Private Sub CommandButton1_Click()
If IsNumeric(TextBox3.Text) And IsNumeric(TextBox2.Text) Then
On Error GoTo errmsg
Dim Laufzeit As Integer
Dim Monatsbeitrag As Integer
Laufzeit = TextBox3.Text
Monatsbeitrag = TextBox2.Text
If CheckBox1 = True Then
TextBox4.Text = Laufzeit * Monatsbeitrag * 12 * 2
Else
TextBox4.Text = Laufzeit * Monatsbeitrag * 12
End If
End If
Exit Sub
errmsg:
MsgBox Err.Number & " " & Err.Description
End Sub
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:1 Nutzer sagt Danke an chris-ka für diesen Beitrag 28
• hbboy15
Registriert seit: 04.05.2016
Version(en): 2010
Vielen Dank, du bist echt Klasse :)
Eine Sache macht er nicht, wenn in dem Feld von Textbox2 oder 3 ein Buchstabe eingegeben wird, soll er in textbox4 eine Fehlermeldung auspucken, Keine Zahl eingeben.
Und eine Frage habe ich noch, ich hätte gerne die möglichkeit, am Ende das Ergebnis mit Rechtsklick zu kopieren und später in die Tabelle einzufügen, wie kann ich das handlen ?
Registriert seit: 04.05.2016
Version(en): 2010
leider gibt der mir beim Ergebnis keine Komma Zahlen aus :(, hab überall Double drauf gemacht, aber bewirkt nichts :(
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
zur ersten Frage
Code:
Private Sub CommandButton1_Click()
If IsNumeric(TextBox3.Text) And IsNumeric(TextBox2.Text) Then
On Error GoTo errmsg
Dim Laufzeit As Integer
Dim Monatsbeitrag As Integer
Laufzeit = TextBox3.Text
Monatsbeitrag = TextBox2.Text
If CheckBox1 = True Then
Textbox4.Text = Laufzeit * Monatsbeitrag * 12 * 2
Else
Textbox4.Text = Laufzeit * Monatsbeitrag * 12
End If
Else
Textbox4.Text = "Es wurde Text eingegeben"
End If
Exit Sub
errmsg:
MsgBox Err.Number & " " & Err.Description
End Sub
Zur letzten Frage: VBA denkt hier englisch.
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• hbboy15
Registriert seit: 04.05.2016
Version(en): 2010
Das mit der Fehlermeldung hat nun geklappt :)
Danke.
Folgendes Problem habe ich noch:
Ich hab die Ergebnisbox so eingestellt, dass man dort nichts verändern kann, aber ich würde gerne zulassen, dass das Ergebnis mit rechtsklick kopiert und später eingefügt werden kann.
kann mir hier noch jemand helfen ? :)
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
03.06.2016, 11:42
(Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2016, 11:44 von RPP63.)
Moin!
Rechtsklick dürfte schwierig sein.
Eine Textbox hat aber ein Doppelklick-Event.
Um den Text durch Doppelklick in die Zwischenablage zu befördern, gibt es die .PutInClipboard-Methode eines DataObject.
Du holst es mittels .GetText
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim oData As New DataObject
Cancel = True
With oData
.SetText TextBox1.Text
.PutInClipboard
MsgBox "Der Text: " & .GetText & " befindet sich nun in der Zwischenablage!"
End With
End Sub
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hi Ralf,
(03.06.2016, 11:42)RPP63 schrieb: Rechtsklick dürfte schwierig sein.
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Select Case Button
Case 1
MsgBox "Das war ein Linksklick."
Case 2
MsgBox "Das war ein Rechtsklick."
End Select
End Sub
Gruß Uwe
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Yepp, Uwe!
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)