07.08.2015, 21:05
Ralf, ich trau mich kaum zu fragen ... bekomme einfach nicht mehr als eine Spalte hin. Kannst du mir den Code so umschreiben, damit wenigstens zwei Spalten in der Listbox angezeigt werden.
Dankeschön!!!
Code:
Private Sub CommandButton1_Click()
Dim Zelle As Range, arrTemp(), tmpCounter As Long 'Test1
'+--------------------------------------------------------------------------------------------------+
'| Filtern über die Autifilter-Option. |
'+--------------------------------------------------------------------------------------------------+
'| ErsteZelle = 1. Zelle der zu filternden Datenbank. |
'| Spalte = Spaltennummer der Datenbank, in welchem sich das Filterkriterium befindet. |
'| FilterKriterium = Filterkriterium nach welcher in der angegebenen Spalte gefiltert werden soll |
'+--------------------------------------------------------------------------------------------------+
Range("A3").AutoFilter Field:=12, Criteria1:="<>"
Range("A3").AutoFilter Field:=13, Criteria1:="="
Range("A3").AutoFilter Field:=7, Criteria1:="="
'+---------------------------------------------------------------------------------------------+
'| Sortiert Spalte H |
'+---------------------------------------------------------------------------------------------+
Columns("H:H").Select
ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort.SortFields.Add Key:= _
Range("H2:H10000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
For Each Zelle In Intersect(Tabelle1.UsedRange.SpecialCells(xlCellTypeVisible), Tabelle1.Columns(1)) 'Test1
ReDim Preserve arrTemp(tmpCounter) 'Test1
'arrTemp(tmpCounter) = Zelle.Row 'Test1
arrTemp(tmpCounter) = Zelle.Value
tmpCounter = tmpCounter + 1 'Test1
Next 'Test1
'MsgBox "Der Filter enthält " & UBound(arrTemp) & " von " & Tabelle1.UsedRange.Rows.Count - 1 & " Datensätzen!" 'Test1
'MsgBox "erster Datensatz in Zeile: " & arrTemp(1) & vbLf & _
' "letzer Datensatz in Zeile: " & arrTemp(UBound(arrTemp)) 'Test1
For tmpCounter = 1 To UBound(arrTemp)
UserForm1.ListBox1.AddItem arrTemp(tmpCounter)
Next
End Sub
Dankeschön!!!