In einem Userform habe ich eine ListBox2 mit Namen. Jeder Name entspricht der Überschrift einer Spalte in sheet("tabelle1"). Beim klicken auf einen eintrag in der Listbox soll in einer comboBox die Autofilter einträge ausgegeben werden. dafür habe ich folgenden code:
--------------------------------------------------------------------------
Function myList(sh As Worksheet, lngCol As long)
Dim vntList(), n As Long, vntC, vntTmp
Dim myCol As New Collection
With sh
ReDim vntList(1 To 1, 1 To Application.CountA(.Columns(lngCol)))
vntTmp = .Range(.Cells(1, lngCol), .Cells(Rows.Count, lngCol).End(xlUp))
End With
For Each vntC In vntTmp
Err.Clear
On Error Resume Next
myCol.Add vntC, CStr(vntC)
If Err.Number = 0 Then
n = n + 1
vntList(1, n) = vntC
End If
Next
ReDim Preserve vntList(1 To 1, 1 To n)
myList = WorksheetFunction.Transpose(vntList)
End Function
----------------------------------------------------------
Private Sub ListBox2_Click()
For LoI = 0 To Abfrage.MultiPage1.Pages(1).ListBox2.ListCount - 1
If Abfrage.MultiPage1.Pages(1).ListBox2.Selected(LoI) = True Then
SpalteNr = LoI + 1
ComboBox1.List = myList(Sheets("Tabelle1"), SpalteNr)
End If
Next
End Sub
-----------------------------------------------------
Die function mylist läd die autofilter einträge in die combobox FUNZT !
Aber die function spreche ich so an:
ComboBox1.List = myList(Sheets("Tabelle1"), SpalteNr)
dann kommt die Fehlermeldung
Argument ByRef unverträglich
Wenn ich aber :
ComboBox1.List = myList(Sheets("Tabelle1"), 2)
dann funktioniert es und in der combobox stehen die autofiltereinträge aus spalte 2
Kann mir jemand helfen? Die function mylist habe ich hier im forum gefunden. leider unkommentiert.
kann mir vielleicht jemand beim verstehen helfen was da genau abgeht. steh grad zeimlich auf dem schlauch.
Vielen Dank
gruß
Thomas