ich habe anbei meine Tabelle angefügt bei welcher ich leider nicht mehr weiterkomme. Es geht darum, dass die ComboBox1 die in der Projektliste aufgeführten Projekte aufführt und je nach Auswahl die ListBox1 die davon abhängigen Einträge aus der DatenbankMaterial anzeigt. Quasi eine Filterfunktion der Listbox1 in Abhängigkeit von der ComboBox1.
Ich würde mich sehr über eine einfache Lösung freuen.
schau mal, ob die Änderungen bereits zum Ziel führen. Nach einer Änderung in der Combobox wird die Listbox neu gefüllt und hierbei nach dem jeweiligen Eintrag in der Combobox gefiltert. Ob woanders jetzt noch was anzupassen ist, habe ich nicht geprüft. Probiere es halt mal aus.
Code:
Private Sub ComboBox1_Change() Call LIST_LADEN_UND_INITIALISIEREN End Sub
Private Sub LIST_LADEN_UND_INITIALISIEREN() Dim lZeile As Long, lOutZeile As Long Dim lZeileMaximum As Long Dim i As Integer
Call ComboBox1_Initialize
'Alle TextBoxen leer machen For i = 1 To iCONST_ANZAHL_EINGABEFELDER Me.Controls("TextBox" & i) = "" Next i
ListBox1.Clear 'Liste leeren
'4 Spalten einrichten 'Spalte 1: Zeilennummer des Datensatzes 'Spalte 2: Spalte A) 'Spalte 3: (Spalte B) 'Spalte 4: (Spalte C) ListBox1.ColumnCount = 5
'Um eine Schleife fŸr alle DatensŠtze zu erhalten benštigen wir die letzte verwendete Zeile lZeileMaximum = Tabelle12.UsedRange.Rows.Count 'Benutzer Bereich auslesen
For lZeile = lCONST_STARTZEILENNUMMER_DER_TABELLE To lZeileMaximum
'Nur wenn die Zeile benutzt / nicht leer ist, zeigen wir etwas an: If IST_ZEILE_LEER(lZeile) = False Then
'Spalte 1 der Liste mit der Zeilennummer fŸllen If CStr(Tabelle12.Cells(lZeile, 5).Text) = ComboBox1.Value Then ListBox1.AddItem lZeile
'Spalten 2 bis 4 der Liste fŸllen ListBox1.List(ListBox1.ListCount - 1, 1) = CStr(Tabelle12.Cells(lZeile, 1).Text) ListBox1.List(ListBox1.ListCount - 1, 2) = CStr(Tabelle12.Cells(lZeile, 2).Text) ListBox1.List(ListBox1.ListCount - 1, 3) = CStr(Tabelle12.Cells(lZeile, 3).Text) ListBox1.List(ListBox1.ListCount - 1, 4) = CStr(Tabelle12.Cells(lZeile, 4).Text) End If
End If
Next lZeile
End Sub
______________________ viele Grüße aus Freigericht Karl-Heinz
ich habe Listboxen noch so gut wie nie benutzt, aber soweit ich weiß, wird das Setzen der Kopfzeilen in der Listbox per VBA nicht unterstützt wird.
Das klappt nur mit .RowSource-Range (Bereichszuweisung). Dann aber wiederum kannst Du nicht mehr die Items per VBA dort reinbringen.
Wenn Du es unbedingt brauchst, könntest Du ja über der Listbox entsprechende Textfelder positionieren und beschriften lassen oder einfach die erste Zeile so mit einlesen.....
Aber vielleicht hat ja irgendjemand noch die passende Lösung dazu.