nilbo91
Goto Top

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.

Content-ID: 364784

Url: https://administrator.de/contentid/364784

Ausgedruckt am: 24.11.2024 um 23:11 Uhr

Volchy
Lösung Volchy 15.02.2018 um 07:11:26 Uhr
Goto Top
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:

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