nachdem mir schon viel geholfen wurde komme ich jetzt an einen Punkt den ich nicht verstehe und hoffe es kann jemand helfen.
Ich lasse eine Listbox mit einem Array aus einer Suche füllen.
Diese Daten werden über eine Funktion weiterverwendet - klappt.
Nun habe ich mit Hilfe von Werner (nochmal Danke) die Listbox über eine 2. Suche gefüllt. Nur funktioniert meine Function nun nicht mehr und gibt den Wert Null zurück.
Jedoch ist der Inhalt der Listbox bei beiden Suchen identisch. Einmal gehts und einmal nicht. Bei Bedarf lade ich die Mappe hoch (ist aber viel zusammengewuselter Code *peinlich*)
Füllen der Listbox mit Array (funktioniert, nur zum Verständnis)
Set rng = Worksheets("Tabelle2").Range("A:A").Find _
(xSuche, LookAt:=xlPart, LookIn:=xlValues)
If Not rng Is Nothing Then
With Worksheets("Tabelle2")
xErste = rng.Address(False, False)
y = True
Do Until xAdresse = xErste
ReDim Preserve arr(0 To 3, 0 To iRowU)
arr(0, iRowU) = .Cells(rng.Row, 1)
arr(1, iRowU) = .Cells(rng.Row, 2)
arr(2, iRowU) = .Cells(rng.Row, 3)
arr(3, iRowU) = .Cells(rng.Row, 4)
iRowU = iRowU + 1
Set rng = .Range("A:A").FindNext(After:=rng)
xAdresse = rng.Address(False, False)
Loop
xAdresse = ""
xErste = ""
End With
End If
If y = False Then
MsgBox "Der Suchbegriff wurde nicht gefunden!"
Suchfeld_1.SetFocus
Else
SSD_Suchen.ListBox1.Column = arr
Folgende Funktion wird über ein DblClick in Listbox1 ausgeführt:
Function fcRowSearch(ByVal SSD As String, ByVal OPN As String) As Integer
Dim liRow As Integer
With Sheets("Tabelle2")
For liRow = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If SSD "" Then
If SSD = .Range("A" & liRow).Value And _
CVar(SSD_Suchen.ListBox1.List(SSD_Suchen.ListBox1.ListIndex, 0)) = .Range("D" _
& liRow).Value Then
fcRowSearch = liRow
Exit Function
End If
End If
If OPN "" Then
If CVar(OPN) = .Range("D" & liRow).Value Then
fcRowSearch = liRow
Exit Function
End If
End If
Next
End With
End Function
Lass ich nun die Listbox über eine 2. Suche (Auswahl aus autogefilterten Daten) füllen gibt die Function NULL zurück. So fülle ich die Listbox:
Set Bereich = Worksheets("tabelle2").Range("A4:BL1000").Resize(Worksheets("tabelle2"). _
autofilter.Range.Rows.Count - 1, 1)
For Each rngCell In Bereich
If rngCell.EntireRow.Hidden = False Then SSD_Suchen.ListBox1.AddItem rngCell.Value
If rngCell.EntireRow.Hidden = False Then SSD_Suchen.ListBox1.List(ListBox1.ListCount - _
1, 1) = rngCell.Offset(0, 1).Value
If rngCell.EntireRow.Hidden = False Then SSD_Suchen.ListBox1.List(ListBox1.ListCount - _
1, 2) = rngCell.Offset(0, 3).Value
Next
Vielleicht sieht ja jemand auf den ersten Blick wo der Fehler liegt.Ich gehe davon aus das die Funktion mit den versteckten Zellen nicht zurecht kommt. Dazu haben ich den Autofilter wieder deaktiviert, aber die funktion kanns immer noch nicht.
Ein Tipp wäre schon super :)
Danke euch!
Gruß
Sven