ich hatte ein Problem und hier wurde mir geholfen mit folgendem Code
Private Sub UserForm_Initialize()
Private Sub UserForm_Initialize()
Dim arr, l As Long, m As Long, n As Long, o As Long
With Worksheets(2)
arr = .Range(.Cells(1, 1), .Cells(62, 4))
End With
For l = LBound(arr) To UBound(arr)
If arr(l, 3) > 0 Or arr(l, 4) > 0 Then m = m + 1
Next
ReDim arrTmp(m, 4)
For l = LBound(arr) To UBound(arr)
If arr(l, 3) > 0 Or arr(l, 4) > 0 Then
For n = 1 To 4
arrTmp(o, n) = arr(l, n)
Next
o = o + 1
End If
Next
With ListBox1
.ColumnCount = 5
.List = arrTmp
End With
Erase arr: Erase arrTmp
End Sub
Das zum einlesen
und das zum bearbeiten
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim l As Long, m As Long, n As Long, o As Long, arr
With ListBox1
l = .ListIndex
TextBox5.Text = .List(.ListIndex, 3)
TextBox7.Text = .List(.ListIndex, 4)
TextBox8.Text = .List(.ListIndex, 1)
arr = .List
ReDim arrtmp(UBound(arr), 4)
For m = LBound(arr) To UBound(arr)
If m l Then
For n = 1 To 4
arrtmp(o, n) = arr(m, n)
Next
o = o + 1
End If
Next
.Clear
.List = arrtmp
End With
Erase arr: Erase arrtmp
End Sub
das hat super geklappt.
nun würde ich gerne nicht nur in der Listbox per doppelklick löschen sondern auch die entsprechend angewählte seite aus der Tabelle. Die werte werden in der Tabelle immer angehängt so müsste die Zeile komplett entfernt werden damit die anderen nach oben rutschen können und keine leerzeilen entstehen.
Es gibt zwar lösungen dafür aber mit denen komme ich nicht weiter da hier mit rowsource oder so eingelesen wird und bei mir wie oben zu sehen etwas anders. Naja ich bekomme das jedenfalls nicht verheiratet. Da der Thread wohl geschlossen wurde stelle ich hier eine neue Frage.
Wäre super wenn das irgendwie gehen würde!
Danke
Andre