Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro-Code in Tochterdatei kopieren
#1
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
...
Antworten Top
#2
Dann speichere das Makro im Makromodul des Arbeitsblattes ("Protokoll") das du kopiierst.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Hallo Ralf,

vielleicht in diese Richtung?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#4
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?
Antworten Top
#5
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.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Rabe
Antworten Top
#6
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.
Antworten Top
#7
Hallo, :19:

Code:
ThisWorkbook.Worksheets(Array("Protokoll", "Language-Sprachen")).Copy
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • Rabe
Antworten Top
#8
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
Antworten Top
#9
Hallo Ralf,

siehe z.B. hier.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Rabe
Antworten Top
#10
Hallo Uwe, hallo zusammen,

ich habe es in der Zwischenzeit auch gefunden und eingebaut.

Nun funktioniert die Datei wie gewünscht.

Danke an alle!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste