Clever-Excel-Forum

Normale Version: Makro-Code in Tochterdatei kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,
mit einem Code kopiere ich Formeln und Inhalte eines Report-Blattes in eine neue Datei.

Nun soll aber in der neuen Datei auch ein Makro funktionieren, dieses müßte ich also auch in die neue Datei kopieren. Wie mache ich das denn?

Code:
...
   With Application.FileDialog(msoFileDialogSaveAs)
      .InitialFileName = "K:\EVG" & "\" & "ELC " & Range("F8") & " " & Range("F9")
      .Title = "Bitte einen Speicherort für die Sicherung auswählen!"
      .Show
'      Dim wb As Workbook
      Set wb = Workbooks.Add
      
      'ThisWorkbook.Sheets("Protokoll").Copy Before:=wb.Sheets(1)
      Call Kopieren
      If .SelectedItems.Count = 1 Then wb.SaveAs .InitialFileName, _
          FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
   End With
...
Dann speichere das Makro im Makromodul des Arbeitsblattes ("Protokoll") das du kopiierst.
Hallo Ralf,

vielleicht in diese Richtung?
Hallo,

(23.06.2020, 17:13)snb schrieb: [ -> ]Dann speichere das Makro im Makromodul des Arbeitsblattes ("Protokoll") das du kopiierst.

ich habe den Code schon im Modul des Protokolls.
Leider habe ich da aber auch noch eine Excel4Makro-Formel drin, mit der ich aus einem Sprachen-Arbeitsblatt die Formularzellen in unterschiedlichen Sprachen anzeigen lassen kann und dieses Excel4Makro und vor allem das Sprachblatt wollte ich nicht mit abspeichern.

Deshalb kopiere ich die Inhalte in das neue Blatt und dann die Formeln zur Berechnung von Kosten und Steuerung mittels Buttons (deren Makros ich verwenden will).
Deswegen dachte ich, ich könnte den Makrocode extra rüberkopieren.

Muß ich dann also das Protokoll-Blatt erst mal komplett kopieren und dann die Inhalte über die Sprachen-Formeln schreiben? Und die Sicherheits-Überschreibungsabfrage jeweils mit ja beantworten? Oder kann ich diese Abfrage ausschalten für den Kopiervorgang?
Zitat:mit einem Code kopiere ich Formeln und Inhalte eines Report-Blattes in eine neue Datei.

Am einfachsten so:
Code:
Sub M_snb()
  Thisworkbook.sheets("Protokoll").copy
  Activeworkbook.saveAs "G:\OF\neues buch.xlsb,50
End Sub

Oder
Code:
Sub M_snb()
  Thisworkbook.Savecopyas "G:\OF\neues buch.xlsb
End Sub
Und dann im neuen Buch löschen was gelöscht werden muss.
Manchmal ist löschen simplers als kopiieren.
Hi,

danke für die Vorschläge:
(24.06.2020, 09:06)snb schrieb: [ -> ]Am einfachsten so:
Code:
Sub M_snb()
  Thisworkbook.sheets("Protokoll").copy
  Activeworkbook.saveAs "G:\OF\neues buch.xlsb,50
End Sub

Wie kann ich mehrere Blätter in die neue Datei speichern?
Thisworkbook.sheets("Protokoll", "Language-Sprachen").copy
bringt eine Fehlermeldung.
Hallo, :19:

Code:
ThisWorkbook.Worksheets(Array("Protokoll", "Language-Sprachen")).Copy
Hi Ralf,

wie kann ich nun ein einzelnes Modul, in dem die zwei Sprachmakros sind (funktionieren nicht hinter einem Arbeitsblatt) in die neue Datei mit rüberkopieren?

Wenn ich die ganze Mappe mit SaveCopyAs speichere und die nicht erwünschten Blätter lösche, dann sind alle Makros dabei und ich benötige ja nur das eine Modul oder macximal ein zweites und müßte die anderen löschen (weiß auch nicht, wie das geht).

Gruß Ralf
Hallo Ralf,

siehe z.B. hier.

Gruß Uwe
Hallo Uwe, hallo zusammen,

ich habe es in der Zwischenzeit auch gefunden und eingebaut.

Nun funktioniert die Datei wie gewünscht.

Danke an alle!