AW: Externe Excel-Datei als Kopie speichern
03.08.2020 23:00:14
fcs
Hallo Steffen,
hier das ergänzte/angepasste Makro plus die Sub-Routine zum Laden des Inhalts des 1. Tabellenblatts.
Die Namen der Zielblätter musst du ggf. anpassen
LG
Franz
Sub Daten_1()
Dim varDatei As Variant
varDatei = Application.GetOpenFilename("Exceldatei (*.xls*), *.xls*", , "Wähle Daten 1")
If varDatei = False Then Exit Sub
Call prcDatenladen(wksZiel:=ActiveWorkbook.Worksheets("hier Kopie Daten 1 "), vDateiname:= _
varDatei)
End Sub
Sub Daten_2()
Dim varDatei As Variant
varDatei = Application.GetOpenFilename("Exceldatei (*.xls*), *.xls*", , "Wähle Daten 2")
If varDatei = False Then Exit Sub
Call prcDatenladen(wksZiel:=ActiveWorkbook.Worksheets("hier Kopie Daten 2"), vDateiname:= _
varDatei)
End Sub
Sub prcDatenladen(wksZiel As Worksheet, vDateiname As Variant)
Dim wkbQuelle As Workbook, wksQuelle As Worksheet
Dim rngCopy As Range
Application.ScreenUpdating = False
'Daten im Zielblatt löschen
With wksZiel
.UsedRange.Clear
End With
'Datei schreibgeschützt öffnen
Set wkbQuelle = Workbooks.Open(vDateiname, ReadOnly:=True)
Set wksQuelle = wkbQuelle.Sheets(1)
Set rngCopy = wksQuelle.UsedRange
rngCopy.Copy
With wksZiel.Range(rngCopy.Address)
.PasteSpecial Paste:=xlPasteColumnWidths
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
Set wksQuelle = Nothing
wkbQuelle.Close savechanges:=False
Application.ScreenUpdating = True
End Sub