ich lade eine Listbox, indem ich die Werte in ein Array schreibe:
Code: Alles auswählen
Sub Listbox_Load (oDialog as Object, oSheet As Object, oListbox as String, strBereich As String, i As Integer)
Dim oCursor
Dim aZeile
Dim aListe()
Dim adat
Dim oBereich
Dim endzeile
Dim k
oCursor = oSheet.createCursor()
oCursor.goToEndOfUsedArea(False)
endzeile = oCursor.getRangeAddress.EndRow + 1
oBereich = oSheet.getCellRangeByName(strBereich & endzeile)
adat = oBereich.getDataArray()
ReDim aListe(uBound(adat)) ' Anzahl der Arrayfelder (Anzahl Tabelleneinträge - 1)
For k = 0 to uBound(adat)
aZeile = adat(k)
aListe(k) = aZeile(0)
Next
oDialog.getControl(oListbox & i).Model.StringItemList = aListe()
End Sub
Code: Alles auswählen
Call Listbox_Load (oFrmTV_EL, oSheet_Betriebsart, "lbBA_", "A5:A", 1)
Nun möchte ich diese Liste aber über eine Bedingung einschränken ...
Code: Alles auswählen
Sub Listbox_Load111 (oDialog as Object, oSheet As Object, oListbox as String, strBereich As String, i As Integer, strBereichGueltig As String)
Dim oCursor
Dim aZeile
Dim aListe()
Dim adat
Dim adatGueltig
Dim oBereich
Dim oBereichGueltig
Dim endzeile
Dim k
oCursor = oSheet.createCursor()
oCursor.goToEndOfUsedArea(False)
endzeile = oCursor.getRangeAddress.EndRow + 1
oBereich = oSheet.getCellRangeByName(strBereich & endzeile)
oBereichGueltig = oSheet.getCellRangeByName(strBereichGueltig & endzeile)
adat = oBereich.getDataArray()
adatGueltig = oBereichGueltig.getDataArray()
ReDim aListe(uBound(adat)) ' Anzahl der Arrayfelder (Anzahl Tabelleneinträge - 1)
For k = 0 to uBound(adat)
If CDate(adatGueltig(k)(0)) = "31.12.9999" Then
msgbox CDate(adatGueltig(k)(0)) & " ups"
aZeile = adat(k)
msgbox aZeile(0)
aListe(k) = aZeile(0)
End If
Next
oDialog.getControl(oListbox & i).Model.StringItemList = aListe()
End Sub
Code: Alles auswählen
Call Listbox_Load111 (oFrmTV_EL, oSheet_Betriebsart, "lbBA_", "A5:A", 1, "BO5:BO")
Es werden jetzt nur noch Einträge angezeigt, die in Spalte 'BO' das Datum '31.12.9999' haben.
Leider ist die Anzahl der Listboxzeilen aber noch dieselbe, die rausgefilterten Zeilen sind jetzt leer.
Wie entferne ich jetzt die Leerzeilen aus meiner Listbox, oder kann die If-Bedingung schon beim 'getDataArray' angewandt werden?
Gruß Thomas