Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA nur mit Variablen rechnen
#1
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 :)
Antworten Top
#2
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
Antworten Top
#3
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.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • hbboy15
Antworten Top
#4
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 ?
Antworten Top
#5
leider gibt der mir beim Ergebnis keine Komma Zahlen aus :(, hab überall Double drauf gemacht, aber bewirkt nichts :(
Antworten Top
#6
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:
  • hbboy15
Antworten Top
#7
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 ? :)
Antworten Top
#8
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)
Antworten Top
#9
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
Antworten Top
#10
Yepp, Uwe! Blush
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)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste