Hallo zusammen,
ich bin eigentlich nur einfacher Excel-Anwender, der sich über dieses Forum Inspirationen einholen und bisher auch quick & dirty (weniger quick, dafür sehr dirty) umsetzen konnte. Dafür schon einmal herzlichen Dank an die großartige Community! Nun bin ich jedoch leider an meine Grenzen gestossen und komme auch durch intensive Recherche nicht weiter.
Wir nutzen in der Arbeit eine Masterdatei (*xlsm), die durch die gesamte Abteilung händisch mit Daten gespeist wird. Gelegentlich muss mit einer bestimmten Datenreihe weiter gearbeitet werden. Hierzu habe ich in Excel ein kleines "Tool" gebastelt, bei dem die etwa 10 erforderlichen Daten aus der Masterdatei abgeschrieben werden. Dieses Tool ist eine *xltm und öffnet anhand dieser Vorlage eine *xlsm, damit es nicht stets versehentlich überschrieben wird. Aus demselben Grund möchte ich auch das Tool nicht in die Masterdatei (als zusätzliches Arbeitsblatt) integrieren.
Nun wäre es natürlich schön, wenn die zehn Daten nicht abgeschrieben werden müssten, sondern automatisch gefüllt werden könnten. Die jeweiligen Daten befinden sind stets in derselben Spalte, weshalb ich mir dachte, die mit der aktiven Zeile herauszusuchen.
Aufgrund dieses Beitrags (https://www.herber.de/forum/archiv/1740to1744/1743877_VBA_neue_Datei_erstellen_Inhalt_kopiere.html) habe ich daher folgenden Code, mit vorerst nur einer zu kopierenden Zelle versucht:
Public Sub xxx_oeffnen() 'xxx steht für den Namen des Tools
Dim wbNeu As Workbook, wsNeu As Worksheet
Dim zeile As Long
zeile = ActiveCell.Row
Application.ScreenUpdating = False
strPfad = "yyy.xltm" 'yyy steht für den Pfad zum Tool
Set wbNeu = Workbooks.Add(strPfad)
Set wsNeu = wbNeu.Worksheets("zzz") 'zzz steht für den Namen des Tabellenblatts, in das ich die Daten einfügen möchte
With ThisWorkbook.Worksheets("Tabelle1")
.Range(Cells(zeile, 2)).Copy wsNeu.Range("B3")
End With
Set wbNeu = Nothing: Set wsNeu = Nothing
End Sub
Es öffnet sich auch eine neue Arbeitsmappe, die aus der Vorlage des Tools erstellt wurde.
Bei der Zeile .Range etc. erscheint dann jedoch der Laufzeitfehler '1004'.
Ich vermute, es liegt daran, dass das Workbook einen anderen Namen haben wird. Schließlich leiten sich die Namen aus der *xltm ab und werden durch eine laufende Zahl ergänzt.
Die Masterdatei hat nach dem ähnlichen Schema schon ein Makro, mit dem eine *.docx aus einer *.dotx erstellt und an den Textmarken befüllt wird. Da dies so gut funktioniert, wollte ich es auch excel-intern versuchen.
Ich würde mich sehr freuen, wenn Ihr mir hier Tipps geben könntet und bedanke mich hierfür bereits im Voraus!
Beste Grüße