Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Blatt aus externer Datei kopieren und einfügen

Blatt aus externer Datei kopieren und einfügen
05.04.2017 09:02:23
Tim
Hallo,
ich möchte gerne ein Blatt (Worksheets(1) ) aus einer anderen Datei (Data.xlsx) kopieren und die Werte in meine geöffnete Datei einfügen (Worksheets(4) ).
Die Datei aus der kopiert werden soll, ist nicht geöffnet und soll zum Kopieren möglichst "unsichtbar" geöffnet und geschlossen werden.
Ich bin noch ziemlich neu bei VBA und der Makro-Recorder hilft hier auch nicht viel.
Kann mir jemand hier damit weiterhelfen ?
Vielen Dank im Voraus für jeden Tipp.
VG,
Tim
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blatt aus externer Datei kopieren und einfügen
05.04.2017 12:59:08
Michael
Hallo!
In Ermangelung konkreterer Angaben Deinerseits, eine Möglichkeit:
Sub ExterneDatenKopieren()
Const PFAD$ = "C:\DeinPfad\"
Const QUELL_DATEI$ = "Data.xlsx"
Dim WbZ As Workbook: Set WbZ = ThisWorkbook
Dim WsZ As Worksheet: Set WsZ = WbZ.Worksheets(4)
Dim WbQ As Workbook, WsQ As Worksheet
Application.ScreenUpdating = False
Set WbQ = Workbooks.Open(PFAD & QUELL_DATEI)
Set WsQ = WbQ.Worksheets(1)
With WsQ
.UsedRange.Copy
With WsZ
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial _
xlPasteValuesAndNumberFormats
End With
End With
Application.CutCopyMode = False: WbQ.Close False
Set WbZ = Nothing
Set WsZ = Nothing
Set WbQ = Nothing
Set WsQ = Nothing
End Sub
LG
Michael
Anzeige
AW: Blatt aus externer Datei kopieren und einfügen
05.04.2017 16:32:40
fcs
Hallo Tim,
hier ein Beispiel. Dieses kopiert die Inhalte aus der Quelltabelle in die Zieltabelle.
Einfacher wäre es ggf. das komplette Tabellenblatt aus der Quelle in die Zieldatei zu kopieren.
LG
Franz
'Erstellt unter Excel 2010
Sub Daten_aus_Datei_einfuegen()
Dim wkbQ As Workbook, wksQ As Worksheet
Dim wksZ As Worksheet, wksA As Object
Dim strAdr As String
Application.ScreenUpdating = False
'Zieltabelle setzen
Set wksZ = ActiveWorkbook.Worksheets(4)
'Aktives Blatt merken
Set wksA = ActiveSheet
'Quelldatei öffnen
Set wkbQ = Application.Workbooks.Open( _
Filename:="D:\Sonstiges\Data1.xlsx", _
ReadOnly:=True, _
UpdateLinks:=False)  'Pfad und Dateiname anpassen!!!!
'Quelltabelle setzen
Set wksQ = wkbQ.Worksheets(1)
'Datenbereich in Quelltabelle kopieren
With wksQ
With .UsedRange
strAdr = .Address
.Copy
End With
End With
'Daten in Zieltabelle einfügen
With wksZ.Range(strAdr)
'Spaltenbreiten einfügen
.PasteSpecial Paste:=xlPasteColumnWidths
'Alle daten einfügen
.PasteSpecial Paste:=xlPasteAll
End With
'Quelldatei wieder schliessen
wkbQ.Close savechanges:=False
'gemerktes Blatt aktivieren
wksA.Activate
Application.ScreenUpdating = True
End Sub
'Erstellt unter Excel 2010 - Variante mit Tabellenblatt kopieren
Sub Tabellenblatt_aus_Datei_einfuegen()
Dim wkbQ As Workbook, wksQ As Worksheet
Dim wkbZ As Workbook, wksA As Object
Application.ScreenUpdating = False
'Zieldatei setzen
Set wkbZ = ActiveWorkbook
'Aktives Blatt merken
Set wksA = ActiveSheet
'Quelldatei öffnen
Set wkbQ = Application.Workbooks.Open( _
Filename:="D:\Sonstiges\Data1.xlsx", _
ReadOnly:=True, _
UpdateLinks:=False)  'Pfad und Dateiname anpassen!!!!
'Quelltabelle setzen
Set wksQ = wkbQ.Worksheets(1)
'Quelltabelle in Zieldatei kopieren
wksQ.Copy after:=wkbZ.Sheets(3)
'kopiertes Blatt umbenennen
wkbZ.Sheets(4).Name = "Test" & Format(Now, "YYYYMMDDhhmmss") 'Name anpassen
'Quelldatei wieder schliessen
wkbQ.Close savechanges:=False
'gemerktes Blatt aktivieren
wksA.Activate
Application.ScreenUpdating = True
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Blatt aus externer Datei kopieren und einfügen


Schritt-für-Schritt-Anleitung

Um ein Excel-Blatt aus einer externen Datei zu kopieren und in deine geöffnete Datei einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code öffnet die Quell-Datei „Data.xlsx“ im Hintergrund, kopiert die Werte und fügt sie in das aktuelle Arbeitsblatt ein.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code ein:
Sub ExterneDatenKopieren()
    Const PFAD$ = "C:\DeinPfad\"
    Const QUELL_DATEI$ = "Data.xlsx"
    Dim WbZ As Workbook: Set WbZ = ThisWorkbook
    Dim WsZ As Worksheet: Set WsZ = WbZ.Worksheets(4)
    Dim WbQ As Workbook, WsQ As Worksheet
    Application.ScreenUpdating = False
    Set WbQ = Workbooks.Open(PFAD & QUELL_DATEI)
    Set WsQ = WbQ.Worksheets(1)
    With WsQ
        .UsedRange.Copy
        With WsZ
            .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial _
            xlPasteValuesAndNumberFormats
        End With
    End With
    Application.CutCopyMode = False: WbQ.Close False
    Set WbZ = Nothing
    Set WsZ = Nothing
    Set WbQ = Nothing
    Set WsQ = Nothing
End Sub
  1. Passe den PFAD zur Quell-Datei entsprechend an.
  2. Führe das Makro aus, um die Daten zu kopieren.

Häufige Fehler und Lösungen

  • Fehler: „Datei nicht gefunden“

    • Lösung: Überprüfe den angegebenen Pfad und stelle sicher, dass die Datei „Data.xlsx“ im korrekten Verzeichnis liegt.
  • Fehler: „Das Arbeitsblatt kann nicht gefunden werden“

    • Lösung: Stelle sicher, dass die angegebene Arbeitsblattnummer korrekt ist und dass das Arbeitsblatt in der Quell-Datei existiert.

Alternative Methoden

Es gibt verschiedene Methoden, um ein Excel-Blatt aus einer anderen Datei einzufügen:

  • Komplette Tabelle kopieren: Verwende den folgenden Code, um das gesamte Tabellenblatt zu kopieren und in die Zieldatei einzufügen:
Sub Tabellenblatt_aus_Datei_einfuegen()
    Dim wkbQ As Workbook, wksQ As Worksheet
    Dim wkbZ As Workbook
    Application.ScreenUpdating = False
    Set wkbZ = ActiveWorkbook
    Set wkbQ = Application.Workbooks.Open("D:\Sonstiges\Data1.xlsx", ReadOnly:=True)
    Set wksQ = wkbQ.Worksheets(1)
    wksQ.Copy after:=wkbZ.Sheets(3)
    wkbQ.Close savechanges:=False
    Application.ScreenUpdating = True
End Sub
  • Excel-Vorlagen verwenden: Du kannst auch vorgefertigte Excel-Vorlagen nutzen, die bereits das gewünschte Layout und Format haben.

Praktische Beispiele

Hier sind einige Beispiele, wie du Daten von einer externen Datei in deine Excel-Datei einfügen kannst:

  1. Excel-Blatt aus einer anderen Datei einfügen:

    • Verwende den oben beschriebenen Code, um die Daten aus „Data.xlsx“ zu importieren.
  2. Daten mit VBA einfügen:

    • Wenn du häufig Daten importierst, kannst du eine Funktion erstellen, die den Prozess automatisiert und die Daten direkt in dein Arbeitsblatt einfügt.

Tipps für Profis

  • Datei duplizieren in Excel: Wenn du regelmäßig mit einer bestimmten Datei arbeitest, erstelle eine Kopie der Datei, um Änderungen vorzunehmen, ohne die Originaldatei zu beschädigen.
  • VBA anpassen: Passe die VBA-Codes an deine spezifischen Bedürfnisse an, um den Prozess zu optimieren.
  • Fehlerbehandlung: Füge Error-Handling in deinen VBA-Code ein, um unerwartete Fehler zu vermeiden und den Benutzer über Probleme zu informieren.

FAQ: Häufige Fragen

1. Wie kann ich den Excel-Pfad kopieren?
Du kannst den vollständigen Pfad einer Datei kopieren, indem du mit der rechten Maustaste auf die Datei klickst, „Eigenschaften“ wählst und den Pfad kopierst.

2. Kann ich mehrere Tabellenblätter gleichzeitig kopieren?
Ja, du kannst eine Schleife in VBA verwenden, um alle benötigten Tabellenblätter nacheinander zu kopieren und in die Zieldatei einzufügen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige