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.

If - then - else , befülle Textbox
#1
Hallo @all,
UF1 hat
3 Textboxen; 1 Commandbutton:
Textbox 1: Stückzahl
Textbox 2: Einzelpreis
Textbox 3: Gesamtbetrag
CommandButton1

Code:
Private Sub CommandButton1_Click()
   Dim wks As Worksheet
   Dim intersteleerezeile As Long
   Set wks = Worksheets("Tabelle1")
    With wks
        intersteleerezeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
          .Cells(intersteleerezeile, 1).Value = Textbox1.Value
          .Cells(intersteleerezeile, 2).Value = CDbl(Textbox2.Value)
          .Cells(intersteleerezeile, 3).Value = CDbl(Textbox3.Value)
    End With
End Sub

hier meine Frage:
2 Einträge können getätigt werden: Stückzahl + Einzelpreis oder Stückzahl + Gesamtbetrag
Wenn der Gesamtbetrag nicht eingetragen wird in der Textbox3, könnte dieser mit
If - Then - Else befüllt werden?
Ebenso die Textbox2, wenn der Einzelpreis nicht eingetragen würde?

wie ist die Zeile
           .Cells(intersteleerezeile, 2).Value = Textbox2.Value
aufzubauen?

freundlichste Grüße
Edit:
upps, da hab ich was vergessen
Ist die Textbox2 oder Textbox3 nicht gefüllt, sollte mit "if - then - else" aus den 2 gefüllten Textboxen der Wert ermittelt werden.
Edit ende.
Antworten Top
#2
Hallo,

ich habe mir erlaubt noch diverse Prüfungen einzubauen. Alle Textboxen werden geprüft, ob dort auch Zahlenwerte eingegeben wurden. Weiterhin sind Prüfungen drin, ob die erforderlichen Textboxen auch befüllt sind.

Sobald in Einzelpreis ein Eintrag erfolgt ist, kann in Gesamtpreis nichts mehr eingegeben werden.
Sobald in Gesamtpreis ein Eitrag erfolgt ist, kann in Einzelpreis nichts mehr eingegeben werden.

Nach Übertrag der Daten in die Tabelle werden die Textboxen wieder geleert, die Userform bleibt offen für weitere Eingaben.

Deine Textboxen musst du umbenennen.
Textbox1: Stückzahl
Textbox2: Einzelpreis
Textbox3: Gesamtpreis
Code:
Private Sub CommandButton1_Click()
Dim wks As Worksheet
  Dim intersteleerezeile As Long
  Set wks = Worksheets("Tabelle1")
   With wks
       intersteleerezeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
       If Me.Stückzahl = "" Then
           MsgBox "Stückzahl muss angegeben werden."
           Me.Stückzahl.SetFocus
           Exit Sub
       ElseIf Not IsNumeric(Me.Stückzahl) Then
           MsgBox "Nur Zahlenwerte zulässig."
           Me.Stückzahl = ""
           Me.Stückzahl.SetFocus
           Exit Sub
       End If
       If Me.Einzelpreis = "" And Len(Me.Gesamtpreis) > 0 Then
           If IsNumeric(Me.Gesamtpreis) Then
               .Cells(intersteleerezeile, 1).Value = CDbl(Stückzahl.Value)
               .Cells(intersteleerezeile, 2) = CDbl(Me.Gesamtpreis.Value) / CDbl(Me.Stückzahl.Value)
               .Cells(intersteleerezeile, 3) = CDbl(Me.Gesamtpreis.Value)
           Else
               MsgBox "Nur Zahlenwerte zulässig."
               Me.Gesamtpreis = ""
               Me.Gesamtpreis.SetFocus
               Exit Sub
           End If
       ElseIf Me.Gesamtpreis = "" And Len(Me.Einzelpreis) > 0 Then
           If IsNumeric(Me.Einzelpreis) Then
               .Cells(intersteleerezeile, 1).Value = CDbl(Stückzahl.Value)
               .Cells(intersteleerezeile, 3) = CDbl(Me.Einzelpreis.Value) * CDbl(Me.Stückzahl.Value)
               .Cells(intersteleerezeile, 2) = CDbl(Me.Einzelpreis.Value)
           Else
               MsgBox "Nur Zahlenwerte zulässig."
               Me.Einzelpreis = ""
               Me.Einzelpreis.SetFocus
               Exit Sub
           End If
       Else
           MsgBox "Es muss entweder ein Einzelpreis oder" & vbLf & _
           "ein Gesamtpreis angegeben werden."
           Exit Sub
       End If
   End With
Me.Stückzahl = ""
Me.Einzelpreis = ""
Me.Gesamtpreis = ""
Me.Stückzahl.SetFocus
End Sub

Private Sub Einzelpreis_Change()
'wenn Einzelpreis belegt keine Eingabe in Gesamtpreis möglich
If Len(Me.Einzelpreis) > 0 Then
   Me.Gesamtpreis.Locked = True
Else
   Me.Gesamtpreis.Locked = False
End If
End Sub

Private Sub Gesamtpreis_Change()
'wenn Gesamtpreis belegt keine Eingabe in Einzelpreis möglich
If Len(Me.Gesamtpreis) > 0 Then
   Me.Einzelpreis.Locked = True
Else
   Me.Einzelpreis.Locked = False
End If
End Sub



Gruß Werner
[-] Folgende(r) 1 Nutzer sagt Danke an Werner.M für diesen Beitrag:
  • WergibtmirRat
Antworten Top
#3
Hallo, hab mit kleinen Hilfen den beschwerlichen Weg nach Rom gefunden:
siehe Code
Code:
Private Sub TextBox2_AfterUpdate()
Label1 = TextBox1 * TextBox2
If TextBox3 = "" Then
TextBox3 = Label1
End If
End Sub
Private Sub TextBox3_AfterUpdate()
Label2 = TextBox3 / TextBox1
If TextBox2 = "" Then
TextBox2 = Label2
End If
End Sub
Private Sub UserForm_Initialize()
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
Label1 = ""
Label2 = ""
End Sub

Antworten Top
#4
(30.12.2017, 13:03)Werner.M schrieb: Hallo,

ich habe mir erlaubt...
Vielen Dank Werner.M das ist viel besser als der kleine Umweg meinerseits.
freundlichsten Dank

Antworten Top


Gehe zu:


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