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 SubCode: 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 SubCode: 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