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.

Rechner mit VBA (Listboxm Button)
#1
   
Hallo,

ich habe wie immer mal wieder ein Problem :19: 
Dr. Google konnte mir leider nicht weiter helfen, ich habe einen rechnen wo man ein Objekt aus der list box auswählen muss, dann in 2 Feldern drunter Zahlen eintragen muss und er anhand der makierung in der Listbox eine bestimmte Formel ausübt, dies funktioniert leider nicht, anbei erhaltet ihr ein Bild und meine formeln, die Rechnung wird gestartet durch den Button ausrechnung.

Hatte damals ein bisschen Java gehabt, aber irgendwie funktioniert das in VBA nicht :( :20: (das ist ja klar).

Private Sub UserForm_Initialize()
With Me.ListBox1
    .AddItem "Rente (BAV, BASIS, Privat)"
    .AddItem "BUZ"
    .AddItem "Sterbegeld"
    .AddItem "Risikolebensversicherung"
End With
End Sub

Private Sub CommandButton1_Click()
If IsNumeric(TextBox3.Text) And IsNumeric(TextBox2.Text) Then
    On Error GoTo errmsg
    Dim Laufzeit As Double
    Dim Laufzeit2 As Double 'Laufzeit2 = Laufzeit - 5 Jahre
    Dim Monatsbeitrag As Double
    Laufzeit = TextBox3.Text
    Monatsbeitrag = TextBox2.Text
    
    If Listbox1 = "Rente (BAV, BASIS, Privat)"
        Laufzeit2 = Laufzeit - 5
        TextBox4.Text = Monatsbeitrag * 12 * Laufzeit2
    Else If Listbox1 = "BUZ"
        TextBox4.Text = Monatsbeitrag * 12 * Laufzeit
    Else If Listbox1 = "Sterbegeld"
        TextBox4.Text = Monatsbeitrag * 12 * Laufzeit
    Else: ListBox1 = "Risikolebensversicherung"
        TextBox4.Text = Monatsbeitrag * 12 * Laufzeit * 2
    End If
Else
TextBox4.Text = "keine Zahl eingegeben"
End If
Exit Sub
errmsg:
    MsgBox Err.Number & " " & Err.Description
End Sub
Antworten Top
#2
Hallo

keine Ahnung was da wie mit welchen Zahlen gerechnet werden soll
aber zu einem If gehört auch immer ein Then

probier es mal so


Code:
Private Sub CommandButton1_Click()
If IsNumeric(TextBox3.Text) And IsNumeric(TextBox2.Text) Then
On Error GoTo errmsg
Dim Laufzeit As Double
Dim Laufzeit2 As Double 'Laufzeit2 = Laufzeit - 5 Jahre
Dim Monatsbeitrag As Double
Laufzeit = TextBox3.Text
Monatsbeitrag = TextBox2.Text

If ListBox1 = "Rente (BAV, BASIS, Privat)" Then
   Laufzeit2 = Laufzeit - 5
   TextBox4.Text = Monatsbeitrag * 12 * Laufzeit2
   ElseIf ListBox1 = "BUZ" Then
       TextBox4.Text = Monatsbeitrag * 12 * Laufzeit
   ElseIf ListBox1 = "Sterbegeld" Then
       TextBox4.Text = Monatsbeitrag * 12 * Laufzeit
   Else: ListBox1 = "Risikolebensversicherung"
       TextBox4.Text = Monatsbeitrag * 12 * Laufzeit * 2
   End If
   Else
   TextBox4.Text = "keine Zahl eingegeben"
End If
Exit Sub
errmsg:
MsgBox Err.Number & " " & Err.Description
End Sub


MfG Tom
Antworten Top
#3
Hallo

ich würde es mit der Fallunterscheidung machen
Code:
Private Sub CommandButton1_Click()
   Dim Laufzeit As Double
   Dim Laufzeit2 As Double 'Laufzeit2 = Laufzeit - 5 Jahre
   Dim Monatsbeitrag As Double
   If IsNumeric(TextBox3.Text) And IsNumeric(TextBox2.Text) Then
       On Error GoTo errmsg
       Laufzeit = TextBox3.Value
       Monatsbeitrag = TextBox2.Value
       Select Case ListBox1.ListIndex
           Case 0
               Laufzeit2 = Laufzeit - 5
               TextBox4.Value = Monatsbeitrag * 12 * Laufzeit2
           Case 1, 2
               TextBox4.Text = Monatsbeitrag * 12 * Laufzeit
           Case 3
               TextBox4.Text = Monatsbeitrag * 12 * Laufzeit * 2
       End Select
   Else
       TextBox4.Text = "keine Zahl eingegeben"
   End If
   Exit Sub
errmsg:
   MsgBox Err.Number & " " & Err.Description
End Sub
der erste Eintrag in einer Listbox ist Index 0

MfG Tom
Antworten Top
#4
Vielen Dank, das mit dem Case ist echt viel einfacher.
Könntest du mir vielleicht bitte helfen den Rechner zuende zu bringen.
Was noch gemacht werden muss ist:

- In dem Ergebnisausgabefeld sollte man die Zahl die errechnet wurde kopieren können um es später in eine Zeile einzufügen.

- Ich würde gerne noch 2 Checkboxen einfügen wie lautet die if bedinungung die zu jedem case erfüllt sein könnte

Case 0
               If Chekbox1 = 1 Then
               Laufzeit2 = Laufzeit - 5
               TextBox4.Value = Monatsbeitrag * 12 * Laufzeit2 /100 * 60

               Elseif Chekbox0 = 1 Then
                   Laufzeit2 = Laufzeit - 5

               TextBox4.Value = Monatsbeitrag * 12 * Laufzeit2 /100 * 80
               Else
               TextBox4.Value = Monatsbeitrag * 12 * Laufzeit2
                Endif
Antworten Top
#5
(05.01.2017, 09:56)hbboy15 schrieb: Vielen Dank, das mit dem Case ist echt viel einfacher.
Könntest du mir vielleicht bitte helfen den Rechner zuende zu bringen.
Was noch gemacht werden muss ist:

- In dem Ergebnisausgabefeld sollte man die Zahl die errechnet wurde kopieren können um es später in eine Zeile einzufügen.

- Ich würde gerne noch 2 Checkboxen einfügen wie lautet die if bedinungung die zu jedem case erfüllt sein könnte

Case 0
               If Chekbox1 = 1 Then
               Laufzeit2 = Laufzeit - 5
               TextBox4.Value = Monatsbeitrag * 12 * Laufzeit2 /100 * 60

               Elseif Chekbox0 = 1 Then
                   Laufzeit2 = Laufzeit - 5

               TextBox4.Value = Monatsbeitrag * 12 * Laufzeit2 /100 * 80
               Else
               TextBox4.Value = Monatsbeitrag * 12 * Laufzeit2
                Endif
Die Sache mit den If's habe ich hinbekommen, benötige nur noch die andere Geschichte.
Antworten Top
#6
Hallo

welche andere Geschichte meinst du?
das Kopieren des Textboxinhalts?

den Inhalt markieren und dann

Strg + C

MfG Tom
Antworten Top
#7
(05.01.2017, 14:35)Crazy Tom schrieb: Hallo

welche andere Geschichte meinst du?
das Kopieren des Textboxinhalts?

den Inhalt markieren und dann

Strg + C

MfG Tom

Diesen kann man nicht Kopieren, da das ein reines Ausgabe feld ist, ich meinte ob man dort nicht rechtsklick kopieren machen kann (ohne alles zumakieren) und dann später in die Zelle einfügen kann.
Antworten Top
#8
Hallo

was für ein "Feld" ist es denn?
ein Label?
dann nutze das Doppelklick-Ereignis

Code:
Option Explicit

Dim MeineVariable As Variant

Private Sub Label1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
   MeineVariable = Label1.Caption
   MsgBox MeineVariable
End Sub

wenn du es auf diese Weise in die Variable packst kannst du es später aus der Userform
in jede beliebige Zelle einfügen

MfG Tom
Antworten Top
#9
Vielen Dank :)

in diesem Fall ist es eine Textbox.
Antworten Top
#10
Hallo

*flööööööööööööööt*


Code:
Option Explicit

Dim MeineVariable As Variant

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
   MeineVariable = TextBox1.Text
   MsgBox MeineVariable
End Sub


MfG Tom
[-] Folgende(r) 1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag:
  • hbboy15
Antworten Top


Gehe zu:


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