ich habe eine Frage bzw. ein Problem.
Ich habe in einer UF zwei LIstboxen, Listbox1 ließt eine Tabelle mit 1800 Zeilen ein. Mit einer Suchffunktion in LIstbox1 könnten die Einträge in Listbox2 per Klick übergeben werden.
Mit einer Commandbutton werden die Einträge von Listbox2 in ein Tabellenblatt eingetragen woraus eine Mail generiert wird.
Warum wird aus Listbox2 nur die erste Eintrag (alle Eintrag sind Markiert) in das Tabellenblatt übertragen und die restlichen werden mit #NV angezeigt.
Wird die Listbox2 komplett geladen und die Zeilen mit Multiselect markiert, werden alle Zeilen super in das Tabellenblatt kopiert.
Hallo zusammen,
ich habe eine Frage bzw. ein Problem.
Ich habe in einer UF zwei LIstboxen, Listbox1 ließt eine Tabelle mit 1800 Zeilen ein. Mit einer Suchffunktion in LIstbox1 könnten die Einträge in Listbox2 per Klick übergeben werden.
Mit einer Commandbutton werden die Einträge von Listbox2 in ein Tabellenblatt eingetragen woraus eine Mail generiert wird.
Warum wird aus Listbox2 nur die erste Eintrag (alle Eintrag sind Markiert) in das Tabellenblatt übertragen und die restlichen werden mit #NV angezeigt.
Wird die Listbox2 komplett geladen und die Zeilen mit Multiselect markiert, werden alle Zeilen super in das Tabellenblatt kopiert.
Dim i As Long
Dim k As Integer
Dim n As Long
Dim lz As Long
Dim ersteFreie As Long
Dim arAusgabe As Variant
Dim rngZelleEins As Range, vntWert As Variant, rngEingabezelle As Range
On Error Resume Next
With Sheets("Rückmeldungen")
lz = .Cells(.Rows.Count, 2).End(xlUp).Row
If lz (kleiner) 2 Then lz = 1
With Userform4.ListBox2
ReDim arAusgabe(1 To .ListCount, 1 To .ColumnCount)
For i = 0 To .ListCount - 1
If .Selected(i) Then
n = n + 2
Set rngZelleEins = Worksheets("Rückmeldungen").Range("D3")
vntWert = Application.InputBox("Materialnummer:" & " " & .List(i) & vbCrLf & "Materialname:" & " " & .List(i, 1) & vbCrLf & vbCrLf & "Geben Sie die Menge ein?")
If Len(vntWert) (größer) 0 Then
Set rngEingabezelle = Worksheets("Rückmeldungen").Cells(Worksheets("Rückmeldungen").Rows.Count, rngZelleEins.Column).End(xlUp).Offset(2, 0)
If rngEingabezelle.Row (kleiner) rngZelleEins.Row Then Set rngEingabezelle = rngZelleEins
rngEingabezelle.Value = vntWert
End If
For k = 0 To .ColumnCount - 1
arAusgabe(n, k + 1) = .List(i, k)
Next
End If
Next i
End With
If n Then
.Cells(lz + 1, 2).Resize(n, UBound(arAusgabe, 2)) = arAusgabe
'.Cells(lz + 3, 4).Resize(UBound(arAusgabe, 2)).Value = CDbl(TextBox1) 'Betrag
'.Cells(lz + 1, 5).Resize(UBound(arAusgabe, 2)).Value = TextBox2.Text 'Aktuelles Datum
'.Cells(lz + 1, 6).Resize(UBound(arAusgabe, 2)).Value = CDate(TextBox2.Text) 'Aktuelles Datum