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

Forumthread: Tabellenblatt aus externer Exceldatei kopieren

Tabellenblatt aus externer Exceldatei kopieren
10.07.2008 10:15:00
Makro
Hi,
ich suche ein Möglichkeit, wie ich eine komplettes Tabellenblatt aus einer externen Excel Datei in meine Datei übertragen kann.
Die Quelldatei, von der ich kopieren oder importieren will, heist "Arbeitsdaten" und hat nur ein Tabellenblatt ("Quelldaten")
Die möchte ich nun per Makro in meine bestehende excel Datei kopieren oder transferieren.
In meiner excelmappe gibt es ein Tabellenblatt "Daten einlesen" und da sollen die daten rein.
Wie ist sowas machbar ?
danke mal für Eure Tipps
Makro

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt aus externer Exceldatei kopieren
10.07.2008 11:14:19
Peter
Hi ? - hast du keinen richtigen Namen ?
versuch es einmal so:

Public Sub Ein_Blatt_kopieren()
Dim WkBk_Quelle  As Workbook   ' das Herkunfts-Workbook - die Quelle
Dim WSh_Quelle   As Worksheet  ' das Herkunfts-Tabellenblatt
Dim rBlock_Q     As Range      ' der zu kopierende Block
Dim WkBk_Ziel    As Workbook   ' das Empfangs-Workbook - das Ziel
Dim WSh_Ziel     As Worksheet  ' das Empfangs-Tabellenblatt
Dim lZeile_Z     As Long       ' die jeweilige Start-Zeile im Ziel-Blatt
Set WkBk_Ziel = ActiveWorkbook  ' diese Datei ist das Ziel !!!
Set WSh_Ziel = WkBk_Ziel.Worksheets("Daten einlesen") ' das Tabellenblatt ggf. anpassen !!!
lZeile_Z = 1                    ' die erste zu beschreibende Zeile
Application.ScreenUpdating = False ' den Bildschirm-Update unterdrücken
Set WkBk_Quelle = Workbooks.Open(Filename:= _
"C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Excel-Dateien\" & _
"Arbeitsdaten.xls", ReadOnly:=True) ' die Herkunfts-Datei - die Quelle - öffnen
Set WSh_Quelle = WkBk_Quelle.Worksheets("Quelldaten") ' das Tabellenblatt benennen
With WSh_Quelle   ' mit dem jeweiligen Tabellenblatt arbeiten
Set rBlock_Q = .Range(.Cells(1, 1), .Cells.SpecialCells(xlLastCell))
rBlock_Q.Copy
WSh_Ziel.Cells(lZeile_Z, 1).PasteSpecial Paste:=xlFormats
WSh_Ziel.Cells(lZeile_Z, 1).PasteSpecial Paste:=xlValues
lZeile_Z = lZeile_Z + rBlock_Q.Rows.Count
End With
Application.CutCopyMode = False
WkBk_Quelle.Close savechanges:=False
Application.ScreenUpdating = True  ' den Bildschirm-Update wieder zulassen
End Sub


Gruß Peter

Anzeige
AW: Tabellenblatt aus externer Exceldatei kopieren
10.07.2008 12:05:47
Makro
Hallo Peter,
doch habe ich: Marco
Also, zu deinem Code, funzt prima , vielen dank
Gruss
Marco


;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt aus externer Exceldatei kopieren


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei, in die du das Tabellenblatt kopieren möchtest.

  2. Öffne den VBA-Editor: Drücke ALT + F11.

  3. Füge ein neues Modul hinzu: Rechtsklicke auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.

  4. Kopiere den folgenden VBA-Code in das Modul:

    Public Sub Ein_Blatt_kopieren()
        Dim WkBk_Quelle  As Workbook   ' Herkunfts-Workbook
        Dim WSh_Quelle   As Worksheet  ' Herkunfts-Tabellenblatt
        Dim rBlock_Q     As Range      ' zu kopierender Block
        Dim WkBk_Ziel    As Workbook   ' Empfangs-Workbook
        Dim WSh_Ziel     As Worksheet  ' Empfangs-Tabellenblatt
        Dim lZeile_Z     As Long       ' Start-Zeile im Ziel-Blatt
    
        Set WkBk_Ziel = ActiveWorkbook  ' diese Datei ist das Ziel
        Set WSh_Ziel = WkBk_Ziel.Worksheets("Daten einlesen") ' Tabellenblatt anpassen
        lZeile_Z = 1                    ' erste zu beschreibende Zeile
    
        Application.ScreenUpdating = False ' Bildschirm-Update unterdrücken
        Set WkBk_Quelle = Workbooks.Open(Filename:= _
        "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Excel-Dateien\Arbeitsdaten.xls", ReadOnly:=True) ' Herkunfts-Datei öffnen
        Set WSh_Quelle = WkBk_Quelle.Worksheets("Quelldaten") ' Tabellenblatt benennen
    
        With WSh_Quelle
            Set rBlock_Q = .Range(.Cells(1, 1), .Cells.SpecialCells(xlLastCell))
            rBlock_Q.Copy
            WSh_Ziel.Cells(lZeile_Z, 1).PasteSpecial Paste:=xlFormats
            WSh_Ziel.Cells(lZeile_Z, 1).PasteSpecial Paste:=xlValues
            lZeile_Z = lZeile_Z + rBlock_Q.Rows.Count
        End With
    
        Application.CutCopyMode = False
        WkBk_Quelle.Close savechanges:=False
        Application.ScreenUpdating = True  ' Bildschirm-Update wieder zulassen
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus: Drücke ALT + F8, wähle Ein_Blatt_kopieren und klicke auf Ausführen.

Das ist alles! Jetzt hast du erfolgreich ein Tabellenblatt aus einer externen Excel-Datei in deine Excel-Datei kopiert.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"
    Lösung: Überprüfe den Pfad zur Quelldatei im Code. Stelle sicher, dass die Datei tatsächlich existiert und der Pfad korrekt angegeben ist.

  • Fehler: "Tabellenblatt nicht gefunden"
    Lösung: Vergewissere dich, dass das Tabellenblatt in der Quelldatei den richtigen Namen hat. Passe den Namen im Code entsprechend an.

  • Fehler: "Ziel-Tabellenblatt nicht gefunden"
    Lösung: Stelle sicher, dass das Ziel-Tabellenblatt ("Daten einlesen") in deiner Arbeitsmappe existiert. Wenn nicht, erstelle es.


Alternative Methoden

  • Manuelles Kopieren: Du kannst auch das Tabellenblatt manuell kopieren, indem du mit der rechten Maustaste auf den Tab des gewünschten Arbeitsblatts klickst, Verschieben oder Kopieren auswählst und die Ziel-Arbeitsmappe angibst.

  • Excel-Funktionen: Verwende die Funktion =IMPORTRANGE() in Google Sheets, um Daten aus einer anderen Datei zu importieren (für Excel ist diese Funktion nicht verfügbar).


Praktische Beispiele

  • Beispiel 1: Du möchtest Daten von einer Datei "Jahresbericht.xlsx" in dein aktuelles Arbeitsblatt "Bericht" importieren. Ändere den Pfad und den Blattnamen im VBA-Code entsprechend.

  • Beispiel 2: Wenn du mehrere Tabellenblätter kopieren möchtest, musst du die Schleife im VBA-Code anpassen, um durch die Blätter zu iterieren.


Tipps für Profis

  • Fehlerbehandlung einfügen: Füge On Error Resume Next und On Error GoTo 0 in deinen Code ein, um Fehler besser zu handhaben.

  • Datenformatierung: Achte darauf, die Formate der Zellen zu kopieren, um die Darstellung der Daten in der Ziel-Arbeitsmappe zu erhalten.

  • Makros speichern: Speichere deine Excel-Datei als Makro-fähige Datei (.xlsm), um die VBA-Skripte zu behalten.


FAQ: Häufige Fragen

1. Wie kann ich ein komplettes Arbeitsblatt kopieren?
Verwende den oben angegebenen VBA-Code, um das gesamte Tabellenblatt in eine andere Datei zu kopieren.

2. Kann ich mehrere Tabellenblätter gleichzeitig kopieren?
Ja, du musst jedoch den Code so anpassen, dass er eine Schleife enthält, die durch die gewünschten Tabellenblätter iteriert.

3. Was mache ich, wenn ich die Quelldatei nicht öffnen kann?
Stelle sicher, dass die Datei nicht in einem anderen Programm geöffnet ist und dass der Pfad korrekt eingegeben wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige