Set wb = Workbooks.Open(strFileName)
... liefert dir eine Referenz auf die geöffnete Mappe. Über diese hast du also darauf Zugriff.
Demnach, brauchst du schon mal kein
Windows(...).Activate
Ausdrücke wie
Range(...).Select
Selection.Copy
und
Range("C12:V12").Select
ActiveSheet.Paste
entfallen aus dem selben Grund. Aus denen wird:
Range(...).Copy
bzw.
Range("C12:V12").Paste
Merk dir zu Activate und Select mal folgendes: "Activate und Select sind nur notwendig um die Aufmerksamkeit des Nutzer auf etwas zu lenken."
Unterm Strich heißt das also:
Dim wbSrc As Excel.Workbook
Dim wbDest As Excel.Workbook
Set wbSrc = Workbooks.Open(strFileName) 'Quelle
Set wbDest = Workbooks.Open("1DP-Checkliste.xlsm") 'Ziel
With wbSrc
'SO:
.Range("A4").Copy
wbDest.Worksheet("Tabelle1").Range("C12:V12").Paste
' 'ODER KÜRZER, SO:
' .Range("A4").Copy wbDest.Worksheet("Tabelle1").Range("C12:V12")
'und der nächste
Range("C4").Copy
wbDest.Worksheet("Tabelle1").Range("W12:AF12").Paste
'usw.
Range("D4").Select
Application.CutCopyMode = False
Selection.Copy
Windows("1DP-Checkliste.xlsm").Activate
Range("AQ12:CD12").Select
ActiveSheet.Paste
Windows(Datei).Activate
Range("J4").Select
Application.CutCopyMode = False
Selection.Copy
Windows("1DP-Checkliste.xlsm").Activate
Range("CT12:DC12").Select
ActiveSheet.Paste
Windows(Datei).Activate
Range("I4").Select
Application.CutCopyMode = False
Selection.Copy
Windows("1DP-Checkliste.xlsm").Activate
Range("DD12:DM12").Select
ActiveSheet.Paste
End With
|