Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten Exportieren per VBA

Daten Exportieren per VBA
09.11.2021 13:13:01
Sebastian
Hi zusammen,
ich hätte eine kleine Bitte. Ich versuche mein Excel Projekt zu verschlanken und möchte ein paar Formeln durch Makros ersetzen. Hab allerdings von Makros wenig Ahnung :(
Ich würde gerne aus einer Excel Tabelle die am selben Speicherort liegt wie die Datei die das Makro ausführt, Daten exportieren und in der Ziel-Datei einfügen. Die Quell-Datei ist dabei nicht geöffnet und das ganze müsste bei Öffnen der Arbeitsmappe passieren.
Die Daten in der Quell-Datei starten ab Zeile 14 und gehen bis max. 5000. Mal von 14 - 500 mal bis 5000. Es Variiert. Es dürfte also nur Exportiert werden bis zur ersten Zeile die keinen Inhalt mehr hat. Der Inhalt der Spalten A-F müsste in der Ziel-Datei ab Zeile 19 in die Spalten B-G Kopiert werden.
Vielleicht hat ja jemand ne Idee :) Danke schonmal ;)
Anzeige

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten Exportieren per VBA
09.11.2021 14:21:18
Edi
Hallo Sebastian
Kommt das Deinen Vorstellungen nahe?

Sub kopieren()
Dim z As Integer
Dim strPfad As String
Dim strQuelle As String
Dim strZiel As String
strPfad = ActiveWorkbook.Path
strQuelle = "quelle.xlsm"
strZiel = "Ziel.xlsm"
Application.DisplayAlerts = False
Workbooks.Open Filename:=strPfad & "\" & strQuelle
z = Range("A14").End(xlDown).Row
Range(Cells(14, 1), Cells(z, 6)).Copy
Workbooks.Open Filename:=strPfad & "\" & strZiel
Cells(19, 2).PasteSpecial
Workbooks(strZiel).Close savechanges:=True
Workbooks(strQuelle).Close
Application.DisplayAlerts = True
End Sub
Gruß
Edi
Anzeige
AW: Daten Exportieren per VBA
09.11.2021 14:27:05
Sebastian
Hey Edi, danke erst mal. Leider nicht so wirklich. A müsste es im Hintergrund funktionieren ohne die Quelle zu öffnen. B hat das kopieren bei mir nicht geklappt. Also er hat es nicht eingefügt. Und C fällt mir gerade auf das er beim Schließen der Ziel-Datei jedes mal die Daten löschen müssten, da beim nächsten öffnen ja evtl weniger Daten gezogen werden könnten als beim mal davor :(
Anzeige
AW: Daten Exportieren per VBA
09.11.2021 14:28:43
Sebastian
Ich nehme zurück, das das einfügen nicht ging. Das war mein Fehler :)
AW: Daten Exportieren per VBA
09.11.2021 14:55:17
Edi
Hallo Sebastian
Hab den Code mal so erweitert, dass nach dem Kopiervorgang alles, was darunter kommt gelöscht wird.

Sub kopieren()
Dim z As Integer
Dim strPfad As String
Dim strQuelle As String
Dim strZiel As String
strPfad = ActiveWorkbook.Path
strQuelle = "quelle.xlsm"
strZiel = "Ziel.xlsm"
Application.DisplayAlerts = False
Workbooks.Open Filename:=strPfad & "\" & strQuelle
z = Range("A14").End(xlDown).Row
Range(Cells(14, 1), Cells(z, 6)).Copy
Workbooks.Open Filename:=strPfad & "\" & strZiel
Cells(19, 2).PasteSpecial
Range(Cells(z + 6, 2), Cells(5000, 7)).ClearContents
Workbooks(strZiel).Close savechanges:=True
Workbooks(strQuelle).Close
Application.DisplayAlerts = True
End Sub
Ob und wie man Daten aus einer nicht geöffneten Datei auslesen kann, sprengt leider meinen Wissenshorizont.
Da würde ich mir vielleicht doch überlegen, ob Formeln mit einer entsprechenden Verknüpfung nicht die bessere Lösung darstellen.
Viele Grüße
Edi
Anzeige
AW: Daten Exportieren per VBA
10.11.2021 08:46:13
Sebastian
Guten Morgen und erst mal vielen Dank, es ist leide rnoch nicht die perfekte Lösung. Evtl. hat ja jemand anderes noch eine Idee :D
AW: Daten Exportieren per VBA
10.11.2021 09:44:28
Edi
Moin Sebastian
Eine Idee habe ich noch.
Benötigt wird das Ganze doch erst, nachdem in der Quelldatei Daten verändert werden.
Man könnte also in der Quelldatei ein Makro einfügen, welches beim Speichern gleich noch die Zieldatei öffnet, die Daten reionkopiert und die Zieldatei wieder schließt.
Das wäre dann so gut wie im Hintergrund...
Nur so ein Gedanke. Funktioniert natürlich nicht, wenn sich das Makro zwingend in einer Drittdatei befinden muss.
Gruß
Edi
Anzeige
AW: Daten Exportieren per VBA
10.11.2021 09:48:50
Sebastian
Die Quell Datei, kann leider nicht geändert werden :(
AW: Daten Exportieren per VBA
10.11.2021 10:07:21
Edi
Dann gehen mir hiermit die Ideen aus.
Vielleicht weiß tatsächlich noch jemand Anderes Rat.
Gruß
Edi
AW: Daten Exportieren per VBA
10.11.2021 12:59:37
Sebastian
Ich Danke dir trotzdem und hoffe auf noch ne gute Idee :)
Anzeige
AW: Daten Exportieren per VBA
11.11.2021 10:23:20
Oberschlumpf
Hi Sebastian
1) Wieso "darf nicht" die Quelldatei geöffnet werden?
Meines Wissens ist das Auslesen von Daten aus nicht geöffneten Dateien nur mit komplizierten Aufwand möglich.
a) hatte ich zum Auslesen von Daten aus nicht geöffneten Dateien mal vor vielen Jahren Code gesehen, der wirklich kompliziert aussah
b) übersteigt das für a) notwendige Wissen bei weitem den Wissensstand bei VBA = bescheiden (auch ich, mit VBA = Gut, hätte meine Probleme, den Code zu verstehen)
Man könnte doch problemlos
- Quelldatei öffnen
- sehr einfach die benötigten Daten auslesen (oder kopieren) und in Zieldatei einfügen
- Quelldatei - ohne speichern! (und damit ohne jegliche Änderung) - wieder problemlos schließen
2) Wieso zeigst du nicht per Upload eine Bsp-Datei mit Bsp-Daten und dazu noch mal ne genaue Beschreibung, was wann kopiert und wohin eingefügt werden soll, bzw was nicht kopiert werden soll?
Danke schon mal für Antworten zu 1) + 2)
Ciao
Thorsten
Anzeige
AW: Daten Exportieren per VBA
11.11.2021 11:26:49
Sebastian
Hi Thorsten :) Erst mal Danke fürs Zeit nehmen :)
1.Also, die Quell-Datei darf schon geöffnet sein, wäre nur SCHÖN wenn nicht :D Aber OK :)
2.Ich sitz an nem Fimen PC und kann nichts hochladen :)
Die Variante von Edi, ist ja gar nicht so schlecht. Also ich fasse noch mal zusammen, er müsste bei nem Klick auf einen Button " daten einlesen " oder so das Makro starten, die Quell Datei öffnen, die Daten wie beschrieben kopieren und einfügen vorher die alt Daten löschen ( Hatte ich ja beschieben in der Frage), die Quell Datei wieder schließen. Ziel Datei bleibt offen :)
Anzeige
AW: Daten Exportieren per VBA
11.11.2021 11:50:06
Oberschlumpf
Hi,
deine Aussage "es ist leide rnoch nicht die perfekte Lösung" ist...
a) tippfehlerbelastet (es wäre cool, wenn du - vor - dem Absenden deiner Antworten genau diese noch mal auf Schreibfehler aller Art überprüfst und korrigierst
(das macht das Lesen, vor allem aber das Vertehen deiner Antworten einfacher; andere schaffen das doch auch - bei dir passiert das leider ziemlich oft)
b) auch ohne Tippfehler null hilfreich - denn - wieso ist der weitere Versuch von Edi nicht die perfekte Lösung?
Wir können nicht auf deinen Monitor gucken - auch wenn du das glauben magst - denn wenn wir drauf gucken könnten, nur dann wäre so eine Aussage wie oben hilfreich
Ich will dich nicht runterputzen, aber immer wieder alles so hinnehmen, wie so Einiges von dir geliefert wird, will ich auch nicht (mehr)
Wir wollen dir und allen Anderen ja helfen! Wir machen uns mal nur wenige, oft aber auch sehr viele Gedanken, damit wir euch hilfreiche Tipps/Lösungen bieten können. Da ist es nicht zu viel verlangt, wenn der Fragende (mwd) sich schon vor dem Fragen etwas Mühe gibt.
Ciao
Thorsten
Anzeige
AW: Daten Exportieren per VBA
11.11.2021 13:26:33
Sebastian
Hi, sorry für die Tippfehler. Ich schaue hier ein bisschen unter Stress in die Antworten und schreibe zu fix zurück. Kommt nicht mehr vor.
Und B, stimmt auch. War wirklich nicht sehr hilfreich. Also das Problem ist eigentlich A: das er die Ziel Datei schließt und B: die Quell-Datei von sich aus ein Hinweisfenster beim öffnen einblendet , welches sich nicht abstellen lässt. Ich habe die beiden Dateien mal hochgeladen. Ich denke beim öffnen erkennt man was wohin gehört :) Danke noch mal ;)
Ziel ->

https://www.herber.de/bbs/user/149080.xlsm

Quelle ->

https://www.herber.de/bbs/user/149081.xls

Anzeige
AW: Daten Exportieren per VBA
11.11.2021 23:48:38
Oberschlumpf
Hi Sebastian
meinst du mit Hinweisfenster in Quelldatei beim Start das hier?
Userbild
Der Grund ist:
Quelldatei überprüft alle geöffneten Exceldateien und sucht...
...nach der Datei "ReportINI.xls"
...in dieser Datei muss das Tabellenblatt ""ReportINI"" enthalten sein
Wird Datei oder Tabellenblatt nicht gefunden, erscheint der obige Hinweis.
Damit dieser Hinweis nicht mehr erscheint, hab ich (musste ich) den Code im Workbook_Open-Ereignis von Quelldatei deaktiviert.
Ja, ich weiß, du hattest geschrieben, dass in Quelldatei nix geändert werden darf.
Ok, dann wirst du auch den obigen Hinweis nicht los.
Hmm...du hattest allerdings um 11:26:49 auf meine Frage nach Bsp-Datei geantwortet, dass du vom Firmen-PC nix hochladen kannst.
Fast genau 2 Stunden später, um 13:26:33, hast du dann auf einmal doch sowohl Quell- und Zieldatei hochgeladen...versteh ich nich...is mir aber auch egal
So, hier nun mein Vorschlag für dich:
https://www.herber.de/bbs/user/149090.zip
WICHTIG!!!
ZUERST die ZIP-Datei entpacken, UND ERST DANN die Zieldatei in Excel öffnen!!!!
Also...
Die ZIP-Datei enthält 2 Dateien:
quelle.xls
ziel.xlsm
Nachdem du beide Dateien im gleichen Verzeichnis gespeichert hast, öffne die Zieldatei und aktiviere die Makros, wenn du gefragt wirst
1. Du wirst per Dialog aufgefordert, die Quelldatei zu öffnen
(wenn du auf Abbrechen klickst, wird das Makro beendet, und es passiert nix weiter)
2. Nach Auswahl der Quelldatei...
...werden zuerst in Zieldatei in vielleicht noch vorhandenen Datenzeilen ab Zeile 19 die Inhalte gelöscht (auch in Spalte H, in der eine Rundungsformel steht)
...wird diese automatisiert die Quelldatei geöffnet
...in Quelldatei werden in den Spalten A:F ab Zeile 14 alle Datenzeilen kopiert
...in Zieldatei werden in den Spalten B:G ab Zeile 19 alle zuvor kopierten Datenzeilen eingefügt
...in Zieldatei in Zelle H19 wird automatisiert die Rundungsformel eingetragen
...in Zieldatei wird die Rundungsformel aus Zelle H19 in alle darunter liegenden Zeilen übertragen
...Quelldatei wird - ohne Speichern - wieder geschlossen
Zieldatei bleibt mit den neu eingefügten Datenzeilen aus Quelldatei übrig und wird nicht geschlossen
Beachte auch die Kommentare im Code.
Hilfts?
Eigtl kann von dir kein NEIN kommen, denn all deine "Wünsche" wurden beachtet.
Bin auf deine Antwort neugierig.
Ciao
Thorsten
Anzeige
AW: Daten Exportieren per VBA
12.11.2021 07:43:12
Sebastian
Guten Morgen Thorsten :)
Erst mal Danke für die viele Mühe :) Ich habe das gerade mal Probiert, allerdings bekomme ich beim Start der Zieldatei die Fehlermeldung " Laufzeitfehler 68 ", Gerät nicht verfügbar :( Sonst liest sich alles in der Tat bestens :) Sollte alles klappen, wäre das die perfekte Lösung :) Warum die Report-Datei den Fehler ausgibt war mir klar, aber ich kann es nicht ändern ... Die ist immer wieder so :D Die Frage war viel mehr, stört diese Pop-Up Fenster den Ablauf ? Gruß Basti
Anzeige
AW: Daten Exportieren per VBA
12.11.2021 09:12:45
Oberschlumpf
Hi Sebastian
seuffzzzz....dein Hinweis ist wieder nicht hilfreich!
a) in welchem Makro (die Zeile, die mit Sub beginnt) und welche Codezeile (welcher Befehl) verursacht denn den Fehler 68?
b) wenn ich hier die Dateien teste, die du als Bsp-Dateien per Upload gezeigt hast, kommt es zu gar keinem Fehler.
c) Zitat: "Die Frage war viel mehr, stört diese Pop-Up Fenster den Ablauf ?"
Tja, genau so hast du diese Frage (in fett) aber nie gestellt !!!
Ich hab eben in der Quelldatei das Makro zum Zeigen des Popups wieder aktiviert, Datei gespeichert + geschlossen, Zieldatei geöffnet, im Dateiauswahl-Dialog die Quelldatei ausgewählt und geöffnet.
diese Pop-Up Fenster stört den Ablauf nicht!
Ciao
Thorsten
Beantwortung von a) ist eigtl am Wichtigsten. Denn ich vermute, der "Fehler" liegt in deiner Original-Quelldatei.
Hast du du denn - vor dem Öffnen - von Zieldatei beide Dateien erst mal aus der ZIP-Datei entpackt, oder hast du...
...ZIP-Datei geöffnet und innerhalb der ZIP-Datei die Zieldatei geöffnet?
Dazu ne Antwort wäre auch schön.
Anzeige
AW: Daten Exportieren per VBA
12.11.2021 09:30:16
Sebastian
Hehehe okay, okay, sorry. Ich arbeite an mir ;)
Also zu
a: beim debuggen zeigt er die Zeile als das Problem an

ChDrive ThisWorkbook.Path 'es wird intern in das Verzeichnis gewechselt, in dem auch diese Datei (ziel.xlsm) gespeichert ist
Und ja ich habe beide Dateien entpackt und in einen Ordner auf dem Desktop gepackt ;)
Anzeige
AW: Daten Exportieren per VBA
12.11.2021 10:41:36
Oberschlumpf
Krass!!! Mein Fehler! Wieso ist es bei mir nicht zu Fehler 68 gekommen?
Hi Sebastian,
änder bitte ChDrive um in ChDir
Dann speicher die Zieldatei, schließ diese und öffne sie wieder.
Wie sich da ChDrive "reingeschlichen" hat, weiß ich nicht. Und wieso es auf meinem PC nicht auch zu dem Fehler kam, verstehe ich noch weniger!
ChDrive wechselt "nur" das Laufwerk.
ChDir, wie eigtl von mir auch gewollt, wechselt zu dem Verzeichnis, in dem Zieldatei und nach deinen Angaben auch Quelldatei gespeichert sind.
Jetzt sollte alles ohne den Fehler 68 funktionieren.
Hilfts?
Willst du mehr über ChDrive und/oder ChDir wissen, dann nutz Google. Da werden diese und viele andere VB(a)-Befehle super erklärt!
Ciao
Thorsten
Anzeige
AW: Daten Exportieren per VBA
12.11.2021 12:38:25
Sebastian
Hi Thorsten, auch wenn ich nerve, aber nun sagt er " Laufzeitfehler 76 - Pfad nicht gefunden. In der selben Zeile wie vorher. Beide Dateien liegen wie gesagt im selben Ordner.
ich weiß nix mehr, außer...
12.11.2021 12:59:37
Oberschlumpf
...lösch die Zeile mit ChDir und/oder ChDrive
AW: ich weiß nix mehr, außer...
12.11.2021 13:27:44
Sebastian
Und da isses :) Besten Dank, das klappt wunderbar :) Ich hab noch eine mini Frage. Kann man es so machen das der Dateipfad beim öffnen schon in dem Ordner ist, wo die Ziel Datei liegt. Damit man nicht so lange klicken muss :)
Anzeige
AW: ich weiß nix mehr, außer...
12.11.2021 13:34:21
Sebastian
Und ohne unverschämt sein zu wollen ... Kann man in das Makro gleich mit einbinden das er einen Rahmen von B19 - I19 bis zur letzten benutzen Zeile macht ? :-* Sorry, das war jetzt ne ungeplante spontane Idee
AW: ich weiß nix mehr, außer...
12.11.2021 16:42:53
Oberschlumpf
neue Frage = neuer Beitrag
;
Anzeige
Anzeige

Infobox / Tutorial

Daten Exportieren per VBA in Excel


Schritt-für-Schritt-Anleitung

Um Daten aus einer Excel-Datei zu exportieren, ohne die Quelldatei zu öffnen, kannst du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei, in der das Makro gespeichert werden soll.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden Code in das Modul ein:

    Sub DatenExportieren()
       Dim z As Integer
       Dim strPfad As String
       Dim strQuelle As String
       Dim strZiel As String
       strPfad = ThisWorkbook.Path
       strQuelle = "quelle.xlsm"
       strZiel = "Ziel.xlsm"
       Application.DisplayAlerts = False
    
       ' Quelldatei im Hintergrund öffnen und Daten kopieren
       Workbooks.Open Filename:=strPfad & "\" & strQuelle
       z = Range("A14").End(xlDown).Row
       Range(Cells(14, 1), Cells(z, 6)).Copy
    
       ' Ziel-Datei öffnen und Daten einfügen
       Workbooks.Open Filename:=strPfad & "\" & strZiel
       Cells(19, 2).PasteSpecial
    
       ' Alte Daten in der Ziel-Datei löschen
       Range(Cells(z + 6, 2), Cells(5000, 7)).ClearContents
       Workbooks(strZiel).Close savechanges:=True
       Workbooks(strQuelle).Close
       Application.DisplayAlerts = True
    End Sub
  5. Schließe den VBA-Editor und speichere deine Arbeitsmappe als xlsm.

  6. Führe das Makro aus, um die Daten zu exportieren.


Häufige Fehler und Lösungen

  • Laufzeitfehler 68 – Gerät nicht verfügbar:

    • Überprüfe, ob die Quelldatei im angegebenen Pfad vorhanden ist. Der Fehler kann auftreten, wenn der Dateipfad falsch ist.
  • Laufzeitfehler 76 – Pfad nicht gefunden:

    • Stelle sicher, dass die Quelldatei und die Zieldatei im gleichen Verzeichnis wie die Arbeitsmappe gespeichert sind.
  • Daten werden nicht eingefügt:

    • Achte darauf, dass die Quelldatei tatsächlich Daten in den entsprechenden Zellen enthält.

Alternative Methoden

Wenn das Exportieren über ein Makro nicht möglich ist oder du eine Alternative suchst, kannst du auch folgende Methoden verwenden:

  • Power Query: Mit Power Query kannst du Daten aus verschiedenen Quellen importieren, ohne VBA verwenden zu müssen.

  • Verknüpfungen: Du kannst auch direkt in Excel Verknüpfungen zu Zellen in einer anderen Datei erstellen, um Daten dynamisch zu importieren.


Praktische Beispiele

Hier ein Beispiel für ein einfaches Makro, das Daten aus einer Datei exportiert:

Sub EinfachesExportieren()
    ' Daten aus "Daten.xlsx" in "Ergebnisse.xlsx" kopieren
    Dim wbQuelle As Workbook
    Dim wbZiel As Workbook

    Set wbZiel = ThisWorkbook
    Set wbQuelle = Workbooks.Open("C:\Pfad\zu\Daten.xlsx")

    wbQuelle.Sheets(1).Range("A1:B10").Copy wbZiel.Sheets(1).Range("A1")

    wbQuelle.Close
End Sub

Tipps für Profis

  • Makro-Tastenbelegung: Du kannst deine Makros mit einer Tastenkombination verknüpfen, um sie schneller auszuführen.
  • Fehlerbehandlung: Füge On Error Resume Next hinzu, um das Makro auch bei Fehlern durchlaufen zu lassen und um spezifische Fehlermeldungen zu generieren.
  • Benutzerdefinierte Dialoge: Verwende UserForms für eine benutzerfreundliche Eingabe der Dateipfade.

FAQ: Häufige Fragen

1. Wie kann ich das Makro automatisch beim Öffnen der Arbeitsmappe ausführen? Du kannst das Makro im Workbook_Open Ereignis einfügen, um es automatisch auszuführen, wenn die Datei geöffnet wird.

2. Was kann ich tun, wenn ich eine Fehlermeldung beim Ausführen des Makros erhalte? Überprüfe die Zeile, die den Fehler verursacht, und stelle sicher, dass alle Dateipfade und Dateinamen korrekt sind.

3. Kann ich mehrere Dateien gleichzeitig exportieren? Ja, du kannst das Makro erweitern, um Schleifen zu verwenden, die mehrere Quelldateien durchgehen und deren Daten in die Zieldatei exportieren.

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