ich fülle mit folgender Syntax eine zweispaltige ListBox. Leider sind in der Quelle des Arrays sehr viele Leerzeilen, die auch so benötigt werden. Ich möchte in der Listbox nur die Zeilen haben, die in einer der beiden Spalten einen Text stehen haben. Hab alle vier Versuche, das Problem in der Syntax auskommentiert und beschriftet.
Private Sub UserForm_Initialize()
Dim arrListe
Dim iItem, i, z As Integer
Dim zeile As Long
Set wksGliederung = ThisWorkbook.Worksheets("Gliederung") 'Gliederung
With wksGliederung
'Zeile mit 1. Wert der Ebene 1
zeiGS = 12
'letzte Zeile mit Wert der Ebene 2
zeiGL = Application.WorksheetFunction.Max(.Cells(.Rows.Count, 4).End(xlUp).Row, _
.Cells(.Rows.Count, 5).End(xlUp).Row)
'Auswahlldaten in Listbox übertragen
arrListe = .Range(.Cells(zeiGS, 4), .Cells(zeiGL, 5))
Me.ListBox1.List = arrListe
' 1. Versuch
' With ListBox1
' For i = .ListCount - 1 To 0 Step -1
' If .List(i, 0) & .List(i, 1) = "" Then .RemoveItem i
' Next
' End With
'2. Versuch
' With ListBox1
' .List = arrListe
' For zeile = .ListCount - 1 To 0 Step -1
' If .List(zeile, 0) = "" And .List(zeile, 1) = "" Then .RemoveItem zeile
' Next zeile
' End With
'3.Versuch
' With ListBox1
' For i = ListBox1.ListCount - 1 To 0 Step -1
' If ListBox1.ListIndex(i, 0) = "" And ListBox1.ListIndex(i, 1) = "" Then
' ListBox1.ListIndex.Remove (i)
' End If
' Next
' End With
'4. Versuch
' With ListBox1
' .Clear
' For i = LBound(arrListe) To UBound(arrListe)
' If Not (arrListe(i, 1) = "" And arrListe(i, 2) = "") Then
' .AddItem arrListe(i, 1)
' .List(.ListCount - 1, 1) = arrListe(i, 2) '.Listcount zählt ab 0
' End If
' Next i
' End With
Erase arrListe
End With
'Ermitteln, ob AP unter-AP hat
With ListBox1
ReDim arrSubAP(0 To .ListCount - 1)
For iItem = 0 To .ListCount - 1
If iItem = .ListCount - 1 Then
If .List(iItem, 0) = "" Then
arrSubAP(iItem) = True
End If
Else
If .List(iItem, 0) "" Then
If .List(iItem + 1, 1) "" Then
arrSubAP(iItem) = True
End If
Else
arrSubAP(iItem) = True
End If
End If
Next
End With
End Sub
Ich hab die Frage schon einmal hier platziert, allerdings nicht zu einer kompletten Lösung gekommen, deshalb nochmal die erneute Frage. Über Hilfe würde ich mich sehr freuen.
Vielen Dank.
LG Julia