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

Forumthread: Daten aus anderem Workbook in Tabelle einfügen

Daten aus anderem Workbook in Tabelle einfügen
Peter
Guten Tag
Ich möchte gerne aus einer Datei, die möglicherweise geschlossen ist, aus einer bestimmten Tabelle den ganzen Inhalt in eine Tabelle der Datei, aus welchem der VBA-Code enthalten ist, kopieren.
Nach meinem Verständnis happert es an dieser Zeile:
rngZiel = wsQuelle.UsedRange
Es werden keine Daten übertragen. Wenn ich die Adresse von ws.Quelle.UsedRange via Direktbereich) abfrage, erhalte ich
$B$1:$BJ$27
Ich möchte, dass der Inhalt in der Zieltabelle in den gleichen Zellen steht.
Danke für jeden Hinweis.
Gruss, Peter
Sub CopyDaten()
Dim wsQuelle    As Worksheet
Dim wsZiel      As Worksheet
Dim rngZiel     As Range
Dim Dateiname   As String   'Quellfile
Dim Tabelle     As String   'Quelltabelle
ThisWorkbook.Activate
Dateiname = "Quelldatei.xls"
Tabelle = "Quelltabelle"
If Not FileIsOpen(Dateiname) Then
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & Dateiname
End If
Set wsQuelle = Workbooks(Dateiname).Worksheets(Tabelle)
Set wsZiel = Workbooks(ThisWorkbook.Name).Worksheets("Zieltabelle")
Set rngZiel = wsZiel.Range("A1")
rngZiel = wsQuelle.UsedRange
End Sub

Function FileIsOpen(sFile As String) As Boolean
Dim wkb As Object
On Error Resume Next
Set wkb = Workbooks(sFile)
If Err = 0 And Not wkb Is Nothing Then
FileIsOpen = True
End If
On Error GoTo 0
End Function

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten aus anderem Workbook in Tabelle einfügen
06.09.2010 16:03:49
Rudi
Hallo,
versuch mal:
Sub CopyDaten()
Dim wsQuelle    As Worksheet
Dim wsZiel      As Worksheet
Dim rngZiel     As Range
Dim Dateiname   As String   'Quellfile
Dim Tabelle     As String   'Quelltabelle
ThisWorkbook.Activate
Dateiname = "Quelldatei.xls"
Tabelle = "Quelltabelle"
If Not FileIsOpen(Dateiname) Then
Set wsQuelle = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & Dateiname).Sheets(Tabelle)
End If
Set wsZiel = ThisWorkbook.Name.Worksheets("Zieltabelle")
Set rngZiel = wsZiel.Range("A1")
wsQuelle.UsedRange.Copy rngZiel
End Sub

Gruß
Rudi
Anzeige
AW: Daten aus anderem Workbook in Tabelle einfügen
06.09.2010 16:37:49
Peter
Hallo Rudi
Das hat so auf Anhieb funktioniert. Vielen Dank!
Allerdings sind die Daten in der Quelltabelle in $B$1:$BJ$27
und die Daten in der Zieltabelle wurden in $A$1:$BI$27 eingetragen.
Nun bin ich noch auf der Suche nach der Lösung, damit der Eintrag in der Zieltabelle auch ab B1 beginnt.
Gruss, Peter
Anzeige
Set rngZiel = wsZiel.Range("B1") owT
06.09.2010 16:45:14
Rudi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten aus anderem Workbook in Tabelle einfügen


Schritt-für-Schritt-Anleitung

Um Daten aus einem anderen Workbook in eine Tabelle einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code öffnet die Quelldatei, wenn sie nicht bereits geöffnet ist, und kopiert die Daten aus einem bestimmten Bereich in die Zieltabelle:

Sub CopyDaten()
    Dim wsQuelle    As Worksheet
    Dim wsZiel      As Worksheet
    Dim rngZiel     As Range
    Dim Dateiname   As String   'Quellfile
    Dim Tabelle     As String   'Quelltabelle

    ThisWorkbook.Activate
    Dateiname = "Quelldatei.xls"
    Tabelle = "Quelltabelle"

    If Not FileIsOpen(Dateiname) Then
        Set wsQuelle = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & Dateiname).Sheets(Tabelle)
    End If

    Set wsZiel = ThisWorkbook.Worksheets("Zieltabelle")
    Set rngZiel = wsZiel.Range("B1")  ' Hier anpassen, um den Startpunkt zu ändern
    wsQuelle.UsedRange.Copy rngZiel
End Sub

Function FileIsOpen(sFile As String) As Boolean
    Dim wkb As Object
    On Error Resume Next
    Set wkb = Workbooks(sFile)
    If Err = 0 And Not wkb Is Nothing Then
        FileIsOpen = True
    End If
    On Error GoTo 0
End Function

Achte darauf, dass du den Zielbereich (rngZiel) anpassen kannst, um die Daten an der gewünschten Stelle einzufügen.


Häufige Fehler und Lösungen

  • Daten werden nicht kopiert: Stelle sicher, dass der Dateiname und der Tabellenname korrekt sind. Achte auch darauf, dass die Quelldatei im gleichen Verzeichnis wie das aktuelle Workbook gespeichert ist.

  • Daten beginnen nicht in der gewünschten Zelle: Ändere die Zeile Set rngZiel = wsZiel.Range("B1") auf die gewünschte Startzelle.


Alternative Methoden

Eine alternative Methode besteht darin, die Daten manuell zu kopieren, indem du die Quelldatei öffnest, die gewünschten Zellen auswählst und mit Strg+C kopierst. Anschließend kannst du in die Zieltabelle gehen und mit Strg+V die Daten einfügen. Diese Methode eignet sich besonders, wenn du nur gelegentlich Daten übertragen musst.


Praktische Beispiele

  1. Datenübertragung für Berichte: Wenn du regelmäßig Berichte aus einer Quelldatei in eine Zieltabelle übertragen musst, kannst du den obigen VBA-Code verwenden und die Makro-Funktionalität in Excel nutzen.

  2. Datenabgleich: Du kannst auch mehr als nur den UsedRange kopieren. Wenn du spezifische Bereiche benötigst, kannst du wsQuelle.Range("A1:B10").Copy rngZiel verwenden, um nur bestimmte Zellen zu übertragen.


Tipps für Profis

  • Nutze Application.ScreenUpdating = False am Anfang des Makros und Application.ScreenUpdating = True am Ende, um die Ausführungsgeschwindigkeit zu erhöhen und das Bildschirmflackern zu reduzieren.

  • Wenn du häufig mit großen Datenmengen arbeitest, solltest du die Daten in Arrays speichern und diese dann in die Zieltabelle schreiben, um die Performance zu verbessern.


FAQ: Häufige Fragen

1. Warum kann ich die Quelldatei nicht öffnen? Überprüfe, ob der Dateiname und der Pfad korrekt sind. Stelle außerdem sicher, dass die Datei nicht bereits geöffnet ist.

2. Wie kann ich die kopierten Daten formatieren? Du kannst die Formatierung direkt nach dem Kopieren anwenden, indem du rngZiel.NumberFormat = "@" oder ähnliche Formatierungen verwendest, um die Darstellung der Daten zu ändern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige