Laufzeitfehler 1004 und ich finde ihn nicht
#1
Hallo zusammen!

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
Top
#2
Hallo Sandor,

vier Fragen:
- sind alle Blätter gleich aufgebaut?
- sind in allen Blättern in Zeile 3 ausreichend Daten?
- ist in allen Blättern der gleiche Ausgangszustand, z.B. Autofilter aus?
- in welcher codezeile kommt der Fehler?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Nabend André,

Punkt 3 war der Übeltäter, da war noch ein Filter aktiv. Danke!!!

Grüße
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste