ich habe folgendes vor:
Ich habe in meinem Tabellenblatt "NUMMERN" alle möglichen Kombinationen inkl. einer eindeutig Nummer.
Die Datei soll für andere als Grundlage zur Suche der eindeutigen Nummer dienen.
Das Ganze soll über eine Userform mit Listbox und ComboBox ausgegeben werden.
Anfangs habe ich es mit der FILTER Funktion und dem Autofilter versucht, ohne zufrieden stellendes Ergebnis.
In VBA hab ich keinerlei Erfahrung und habe mich bisher mit Youtube Tutorials und Foren Einträgen über Wasser gehalten, hier bin ich aber nun an meine Grenzen gestoßen.
Was muss der Code können:
Wir haben eine ListBox und 9 ComboBoxen
Die ComboBoxen werden mit Werten aus dem Blatt DATEN definiert (Das funktioniert auch schon).
In der ListBox sollen je nach Auswahl in den ComboBoxen alle möglichen Werte der zugehörigen Spalte ausgegeben werden.
Steht in den ComboBoxen ein bestimmter Wert (Die Überschrift der Spalten A:I im Blatt NUMMERN), sollen alle Inhalte der jeweiligen Spalte wiedergegeben werden.
Ganz am Ende sollen die Nummern über einen Hyperlink eine .pdf Datei auf einer Festplatte öffnen.
Aktuell ist mein Problem, dass ich jede ComboBox die Werte der anderen überschreibt oder ignoriert und dass wenn ich eine der Überschriften aus dem Tabellenblatt NUMMERN auswähle nichts angezeigt wird (ich habe mich bisher nur um die ertse ComboBox gekekümmert, was diesen Punkt angeht)
https://www.herber.de/bbs/user/157057.xlsm
Hier ist mein bisheriger Code
Private Sub Lufter_Change()
Dim zeile As Long
'Listbox leeren
Me.ListBox1.Clear
'Schleife über alle Zeilen der Tabelle
For zeile = 2 To Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row
If InStr(1, LCase(Tabelle2.Cells(zeile, 3).Value), LCase(Anzahl_Abzug.Value)) 0 Then
'ListBox befüllen
Me.ListBox1.AddItem Tabelle2.Cells(zeile, 1).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Tabelle2.Cells(zeile, 2).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Tabelle2.Cells(zeile, 3).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Tabelle2.Cells(zeile, 4).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Tabelle2.Cells(zeile, 5).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Tabelle2.Cells(zeile, 6).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = Tabelle2.Cells(zeile, 7).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Tabelle2.Cells(zeile, 8).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = Tabelle2.Cells(zeile, 9).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Tabelle2.Cells(zeile, 10).Value
End If
Next zeile
End Sub
Private Sub Anzahl_Abzug_Change()
Dim zeile As Long
'Listbox leeren
Me.ListBox1.Clear
'Schleife über alle Zeilen der Tabelle
For zeile = 2 To Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row
If InStr(1, LCase(Tabelle2.Cells(zeile, 2).Value), LCase(Anzahl_Abzug.Value)) 0 Then
'ListBox befüllen
Me.ListBox1.AddItem Tabelle2.Cells(zeile, 1).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Tabelle2.Cells(zeile, 2).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Tabelle2.Cells(zeile, 3).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Tabelle2.Cells(zeile, 4).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Tabelle2.Cells(zeile, 5).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Tabelle2.Cells(zeile, 6).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = Tabelle2.Cells(zeile, 7).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Tabelle2.Cells(zeile, 8).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = Tabelle2.Cells(zeile, 9).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Tabelle2.Cells(zeile, 10).Value
End If
Next zeile
End Sub
Private Sub System_Change()
Dim zeile As Long
'Listbox leeren
Me.ListBox1.Clear
'Schleife über alle Zeilen der Tabelle
For zeile = 2 To Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row
If InStr(1, LCase(Tabelle2.Cells(zeile, 1).Value), LCase(System.Value)) 0 Then
'ListBox befüllen
Me.ListBox1.AddItem Tabelle2.Cells(zeile, 1).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Tabelle2.Cells(zeile, 2).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Tabelle2.Cells(zeile, 3).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Tabelle2.Cells(zeile, 4).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Tabelle2.Cells(zeile, 5).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Tabelle2.Cells(zeile, 6).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = Tabelle2.Cells(zeile, 7).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Tabelle2.Cells(zeile, 8).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = Tabelle2.Cells(zeile, 9).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Tabelle2.Cells(zeile, 10).Value
End If
'Bei Wert System alle Werte Anzeigen
If InStr(1, Tabelle2.Cells(zeile, 1), "System") 0 Then
Me.ListBox1.AddItem Tabelle2.Cells(zeile, 1).Value
End If
Next zeile
End Sub
Private Sub UserForm_Initialize()
Dim zeile As Long
'Schleife über alle Zeilen der Tabelle
For zeile = 2 To Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row
'ListBox befüllen
Me.ListBox1.AddItem Tabelle2.Cells(zeile, 1).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Tabelle2.Cells(zeile, 2).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Tabelle2.Cells(zeile, 3).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Tabelle2.Cells(zeile, 4).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Tabelle2.Cells(zeile, 5).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Tabelle2.Cells(zeile, 6).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = Tabelle2.Cells(zeile, 7).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Tabelle2.Cells(zeile, 8).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = Tabelle2.Cells(zeile, 9).Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Tabelle2.Cells(zeile, 10).Value
Next zeile
'Erstes Element auswählen
Me.ListBox1.Selected(0) = True
End Sub
Vielen Dank für eure Hilfe und eueren Input