Excel Spalten per Makro aus XLSX in XLSX importieren
Guten Abend zusammen,
ich habe schon wieder ein Problem mit Excel.
Und zwar möchte ich bestimmt Spalten aus einer XLSX in eine andere xlsx importieren (überschreiben oder integrieren).
Die Datei aus der importiert werden soll ist immer gleich aufgebaut jedoch variiert der Dateiname und der Speicherort.
Mit XML Datein und den XML-Zuordnungen würde es einwandfrei funktionieren! Aber nun ist es eben keine XMLsonder eine XLSX und wie ich das jetzt mache ist mir ein Rätsel.
Das händische Importieren aus Microsoft Query funktioniert. Über eine "Abfrage aus Datei" auch und ist dazu noch eleganter da ich meine benötigten Spalten auswählen und sortieren kann (wegen sverweis). Jedoch klappt es per Makro nicht. Auch mit dem Makrorecorder wird nix funktionierendes ausgegeben.
Stumpf die Spalten von Quelle zu Ziel koppieren gefällt mir nicht da mich der Laufzeitfehler 9 dazu zwingt die Quelldatei vorher zu öffnen und offen zu lassen.
Habt Ihr eine Idee?
Grüße Frank
Info: Leider haben wir nur Excel 2013 auf der Arbeit.
ich habe schon wieder ein Problem mit Excel.
Und zwar möchte ich bestimmt Spalten aus einer XLSX in eine andere xlsx importieren (überschreiben oder integrieren).
Die Datei aus der importiert werden soll ist immer gleich aufgebaut jedoch variiert der Dateiname und der Speicherort.
Mit XML Datein und den XML-Zuordnungen würde es einwandfrei funktionieren! Aber nun ist es eben keine XMLsonder eine XLSX und wie ich das jetzt mache ist mir ein Rätsel.
Das händische Importieren aus Microsoft Query funktioniert. Über eine "Abfrage aus Datei" auch und ist dazu noch eleganter da ich meine benötigten Spalten auswählen und sortieren kann (wegen sverweis). Jedoch klappt es per Makro nicht. Auch mit dem Makrorecorder wird nix funktionierendes ausgegeben.
Stumpf die Spalten von Quelle zu Ziel koppieren gefällt mir nicht da mich der Laufzeitfehler 9 dazu zwingt die Quelldatei vorher zu öffnen und offen zu lassen.
Habt Ihr eine Idee?
Grüße Frank
Info: Leider haben wir nur Excel 2013 auf der Arbeit.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 364784
Url: https://administrator.de/contentid/364784
Ausgedruckt am: 24.11.2024 um 23:11 Uhr
1 Kommentar
Moin,
warum soll die Quelldatei offen bleiben müssen?
Nach dem Kopieren kann diese doch geschlossen werden.
Ich habe noch eine Datei rum fahren, bei der das in etwa so aussieht und ohne Laufzeitfehler funktioniert:
Wenn du die Daten je nach Inhalt oder dergleichen einfügen willst, kannst du dir noch eine Ermittlung der Zeilennummer vorschalten, sodass deine Daten erst ans Ende des bereits bestehenden Inhalts kopiert werden.
lG
warum soll die Quelldatei offen bleiben müssen?
Nach dem Kopieren kann diese doch geschlossen werden.
Ich habe noch eine Datei rum fahren, bei der das in etwa so aussieht und ohne Laufzeitfehler funktioniert:
Private Sub LeseQuelldaten_Click()
Dim Quellmappe As Workbook
Dim Zielmappe As Workbook
Set Quellmappe = Workbooks.Open("UNC-Pfad\Datei.XLSX")
Set Zielmappe = ThisWorkbook // Optional auch durch andere XLSX einsetzbar; diese dann vorher öffnen und nach kopieren wie unten mit Quellmappe wieder schließen.
Quellmappe.Worksheets(1).Range("A2:L10600").Copy _
Destination:=Zielmappe.Worksheets("Dein_Tabellenblatt").Range("A9") // Beginn des Kopier-Zielbereichs
Quellmappe.Close SaveChanges:=False
// Zielmappe schließen optional
End Sub
Wenn du die Daten je nach Inhalt oder dergleichen einfügen willst, kannst du dir noch eine Ermittlung der Zeilennummer vorschalten, sodass deine Daten erst ans Ende des bereits bestehenden Inhalts kopiert werden.
lG