mit nachstehendem Code werden Werte von einer Listbox an eine andere übergeben, mit Aufruf einer Inputbox für Mengeneingaben, das fkt. soweit.
Woran ich scheitere, ist folgendes:
Wenn eine Null eingeben wird oder ein Wert, der kleiner ist als der gefundene Wert, sollte man die Eingabe in der Inputbox wiederholen können.
Wie kann man das in den Code einbauen, ohne die ganze Sub abzubrechen?
Dim textletzteMenge As String, letztemenge As Double
For iRow = 0 To irowL
If Me.ListBox1.Selected(iRow) Then
ReDim Preserve arrN(0 To i, 0 To 6)
arrN(iRowU, 0) = Me.ListBox1.List(iRow, 0)
arrN(iRowU, 1) = Me.ListBox1.List(iRow, 1)
arrN(iRowU, 2) = Me.ListBox1.List(iRow, 2)
If Me.ListBox1.List(iRow, 0) = "POS" Or Me.ListBox1.List(iRow, 0) = "EPOS" Then
If IsNumeric(Application.Match(Me.ListBox1.List(iRow, 1), wksletzteAR.Columns(2), 0)) Then
textletzteMenge = "Menge in letzter AR: " & _
Format(Application.Index(wksletzteAR.Columns(4), Application.Match(Me.ListBox1.List(iRow, _
1), wksletzteAR.Columns(2), 0)), "##,##0.000")
letztemenge = Application.Index(wksletzteAR.Columns(4), Application.Match(Me.ListBox1. _
List(iRow, 1), wksletzteAR.Columns(2), 0))
Else
textletzteMenge = "In letzter AR noch nicht vorhanden"
End If
Menge = InputBox("Menge eingeben für:" & vbLf _
& Me.ListBox1.List(iRow, 0) & vbLf _
& Me.ListBox1.List(iRow, 1) & vbLf _
& Me.ListBox1.List(iRow, 2) & vbLf _
& textletzteMenge & vbLf, "Eingabe Menge für Rechnung", Format(CDbl(Me.ListBox1. _
List(iRow, 3)), "##,##0.000"))
Select Case Menge
'Case 0: hier sollte eine Wiederholung der Eingabe stattfinden
'Case Menge = _
letzte Menge
Case "": Menge = Me.ListBox1.List(iRow, 3)
Case Else: Menge = Menge
End Select
arrN(iRowU, 3) = String(11 - Len(Format(Menge, "##,##0.000")), " ") & Format(Menge, "##,## _
0.000")
Else
arrN(iRowU, 3) = Me.ListBox1.List(iRow, 3)
End If
arrN(iRowU, 4) = Me.ListBox1.List(iRow, 4)
arrN(iRowU, 5) = Me.ListBox1.List(iRow, 5)
If Me.ListBox1.List(iRow, 0) = "POS" Or Me.ListBox1.List(iRow, 0) = "EPOS" Then
arrN(iRowU, 6) = String(14 - Len(Format(VBA.Round(Menge * Me.ListBox1.List(iRow, 5), 2), " _
##,##0.00 ")), " ") & _
Format(VBA.Round(Menge * Me.ListBox1.List(iRow, 5), 2), "# _
#,##0.00 ")
End If
If Me.ListBox1.List(iRow, 0) = "HP" Or Me.ListBox1.List(iRow, 0) = "HPEPOS" Then
arrN(iRowU, 6) = Me.ListBox1.List(iRow, 5)
End If
If Me.ListBox1.List(iRow, 0) = "LOS" Or Me.ListBox1.List(iRow, 0) = "TI" Or Me.ListBox1. _
List(iRow, 0) = "UP" Then
arrN(iRowU, 6) = ""
End If
iRowU = iRowU + 1
End If
Next iRow
Für Anregungen und Hilfe bedanke ich mich im VorausMfG Christian