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!!!
... bekomme einfach nicht mehr als eine Spalte hin. Kannst du mir den Code so umschreiben, damit wenigstens zwei Spalten in der Listbox angezeigt werden. 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 SubDankeschön!!!

... Ohne die Lösung schon zu verraten Ralf, entnehme ich daraus das es eigentlich über die Schiene laufen sollte? Und das zweite, ich muss mir dann wohl das mit dem "Array" nochmal anschauen? Befüllen des Selbigen und mein Versuch die Daten wieder zurückzuschreiben bzw. mein Wunsch passen nicht zusammen?