in meiner Liste befinden sich etwa 14000 lines, diese lasse ich filtern und bekomme dann etwa 1500 lines als Ergebniss. Dannach möchte ich nur den gefilterten Bereich in mehrere Arrays lesen lassen. Leider merken meine Arrays nicht, dass ich denn Bereich gefiltert habe. Wo liegt mein Fehler?
Beste Grüße
Christian
lngLZeile = 14000
Beste Grüße
Option Explicit
Sub Monitor()
Dim WsMSPT As Worksheet
Dim WsQuelle As Worksheet
Dim lngLZeile As Long
Dim VariableA As Variant
Dim VariableC As Variant
Dim VariableD As Variant
Dim VariableE As Variant
Set WsQuelle = tabComp
Set WsMSPT = TabMSPT_Monitor
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With WsQuelle
.Range("A1").AutoFilter Field:=14, Criteria1:="MSPT"
lngLZeile = WsQuelle.Cells.Find("*", WsQuelle.Range("A1"), xlFormulas, xlWhole, xlByRows, _
xlPrevious).Row
WsMSPT.Range("A3:P" & lngLZeile).Clear
VariableA = .Range("A2:C" & lngLZeile).Value
VariableC = .Range("D2:F" & lngLZeile).Value
VariableD = .Range("I2:L" & lngLZeile).Value
VariableE = .Range("P2:S" & lngLZeile).Value
End With
WsMSPT.Range("A3:C" & lngLZeile) = VariableA
WsMSPT.Range("F3:H" & lngLZeile) = VariableC
WsMSPT.Range("I3:L" & lngLZeile) = VariableD
WsMSPT.Range("M3:P" & lngLZeile) = VariableE
WsQuelle.Range("A" & lngLZeile).AutoFilter Field:=14
With WsMSPT
.Range("D3").Formula = "=IFERROR(VLOOKUP(B3,Shipset!L:S,8,FALSE),"""")" 'WO
.Range("D3:D" & lngLZeile).FillDown
.Range("E3").Formula = "=IFERROR(VLOOKUP(B3,Shipset!L:T,9,FALSE),"""")" 'WO
.Range("E3:E" & lngLZeile).FillDown
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
WsMSPT.Range("D3:E" & lngLZeile).Copy
WsMSPT.Range("D3:E" & lngLZeile).PasteSpecial Paste:=xlPasteValues
End Sub