Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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 ;)

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 :(
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 :)
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 :)
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
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 ;)
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 :)
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige