Warum?
versetzt du in deinem Code den zu sortierenden Bereich auf Zeile 2,
wenn die .Headerangabe auf xlYes lautet?
Quick&Dirty
Sub myCopy()
Dim lngRow As Long, lngCol As Long, Rng As Range, Adr As String
lngRow = 1: lngCol = 1
With Sheets(1)
'wo sind Daten
On Error Resume Next
If .AutoFilterMode Then .Cells.AutoFilter
lngRow = .Cells.Find("*", .Cells(1), -4123, 2, 1, 2, False).Row
lngCol = .Cells.Find("*", .Cells(1), -4123, 2, 2, 2, False).Column
On Error GoTo 0
'der Kopierbereich
Set Rng = .Range(.Cells(1), .Cells(lngRow, lngCol))
Adr = Rng.Address(0, 0)
'kopieren
Rng.copy Sheets(2).Cells(1)
End With
With Sheets(2)
'Bereich wie Sheets(1)
Set Rng = .Range(Adr) 'wegen Sortierspalte
.Range(Adr).Sort _
Key1:=Rng.Columns(4), Order1:=xlAscending, _
Header:=xlYes, orderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
End Sub
|