Hallo Robin,
Select braucht man zu 99 Prozen nicht.
Deine Formeln kannst du doch in einem Schritt gleich jeweils in den entsprechenden Bereich rein schreiben.
Willst du tatsächlich bis Zeile 5487 die Fromeln rein schreiben oder ist das nur auf "Vorrat"?
Ich hab mal den Code dahingehend geändert, dass in Spalte A die letzte belegte Zeile ermittelt wird und die Formeln dann auch nur bis zu dieser Zeile geschrieben werden.
Der Filter erstreckt sich dann auch nur bis zu dieser Zeile.
Teste mal:
Option Explicit
Sub Makro1()
Dim loLetzte As Long, loLetzteZiel As Long
Application.ScreenUpdating = False
With Worksheets("Quelltabelle") 'Blattname anpassen
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range("A11:A" & loLetzte).FormulaR1C1 = "=RC[3]&"" ""&RC[5]"
.Range("B11:B" & loLetzte).FormulaR1C1 = "=IFERROR(IF(VLOOKUP(RC[-1],Overview!c1,1,)>0,"""",""Kunde nicht vorhanden""),""Kunde nicht vorhanden"")"
.Range("C11:C" & loLetzte).FormulaR1C1 = "=IF(LEN(MONTH(R7C6))=1,""0""&MONTH(R7C6),MONTH(R7C6))&"""""
.Range("$A$9:$P$" & loLetzte).AutoFilter Field:=2, Criteria1:="Kunde nicht vorhanden"
With .AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1).Copy
With Worksheets("Overview")
loLetzteZiel = .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Row
.Cells(loLetzteZiel, "A").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End With
End With
End With
Application.CutCopyMode = False
End Sub
Gruß Werner
|