Clever-Excel-Forum

Normale Version: VBA nur mit Variablen rechnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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 :)
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
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
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 ?
leider gibt der mir beim Ergebnis keine Komma Zahlen aus :(, hab überall Double drauf gemacht, aber bewirkt nichts :(
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.
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 ? :)
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
Hi Ralf,

(03.06.2016, 10: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
Yepp, Uwe! Blush
Seiten: 1 2