25.08.2015, 20:19
(Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2015, 20:21 von sandormiles.)
Hallo zusammen!
Folgender Code bereitet mir gerade Sorgen (Fehler 1004 (AutoFilter-Methode des Range-Objektes)):
In einem Arbeitsblatt funktioniert er, im anderen nicht. Die Angaben der Tabellenblätter habe ich schon geprüft. Hab ich noch was übersehen, was aus dem Code offensichtlich ist?
Danke und schönen Abend Euch
Grüße
Sandor
Folgender Code bereitet mir gerade Sorgen (Fehler 1004 (AutoFilter-Methode des Range-Objektes)):
Code:
Private Sub UserForm_Initialize()
Sheets("WS_Wohn A").Select
Dim Zelle As Range, arrTemp(), tmpCounter As Long
'+--------------------------------------------------------------------------------------------------+
'| Filtern über die Autifilter-Option, Filtert Spalte L, M und G |
'+--------------------------------------------------------------------------------------------------+
'| 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("WS_Wohn A").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("WS_Wohn A").AutoFilter.Sort.SortFields.Add Key:= _
Range("H2:H10000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("WS_Wohn A").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'+---------------------------------------------------------------------------------------------+
'| Schreibt die gefilterten und sortierten Zeilen in eine ListBox |
'+---------------------------------------------------------------------------------------------+
For Each Zelle In Intersect(Tabelle2.UsedRange.SpecialCells(xlCellTypeVisible), ThisWorkbook.Worksheets("WS_Wohn A").Columns(1))
ReDim Preserve arrTemp(tmpCounter)
arrTemp(tmpCounter) = Zelle.Row
tmpCounter = tmpCounter + 1
Next
For tmpCounter = 1 To UBound(arrTemp)
With UserForm99.ListBox1
.AddItem Tabelle2.Cells(arrTemp(tmpCounter), 1)
.List(.ListCount - 1, 1) = Tabelle2.Cells(arrTemp(tmpCounter), 2)
.List(.ListCount - 1, 2) = Tabelle2.Cells(arrTemp(tmpCounter), 3)
.List(.ListCount - 1, 3) = Tabelle2.Cells(arrTemp(tmpCounter), 4)
.List(.ListCount - 1, 4) = Tabelle2.Cells(arrTemp(tmpCounter), 8)
.List(.ListCount - 1, 5) = Tabelle2.Cells(arrTemp(tmpCounter), 7)
End With
Next
End Sub
In einem Arbeitsblatt funktioniert er, im anderen nicht. Die Angaben der Tabellenblätter habe ich schon geprüft. Hab ich noch was übersehen, was aus dem Code offensichtlich ist?
Danke und schönen Abend Euch
Grüße
Sandor