Clever-Excel-Forum

Normale Version: If - then - else , befülle Textbox
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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.
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
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
(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