![]() |
Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? - Druckversion +- Office-Fragen.de (https://office-fragen.de) +-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html) +--- Forum: Excel (https://office-fragen.de/forum-2.html) +--- Thema: Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? (/thread-27314.html) |
Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? - hziemer - 17.03.2022 Hallo an alle hier im Forum. Ich gebe mittels VBA Teile aus dem aktuellen Tabellenblatt in eine andere Datei aus. Kann ich aber auch ein Makro mit in diese Ausgabe einbinden, damit es in der Ausgabe ausgeführt werden kann? Gibt es dafür eine Lösung? Danke für eure Hilfe. Gruß hziemer RE: Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? - PetrolMaxxe - 19.03.2022 Hallo, ja das geht. Wenn du deine Daten ins Windows Fenster der neuen Datei übergeben hast, kann man danach mit: Code: Sub NeuesModulUndProzedur() Mit .InsertLines und Nummer wird jeweils eine weitere Codezeile erzeugt. Dies ist nur ein Beispiel. ThisWorkbook bedeudet, dass das Windowsfenster der Zieldatei aktiviert sein muss, damit der Code auch da ausgeführt wird. Gruß Uwe RE: Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? - PetrolMaxxe - 21.03.2022 Hallo, Anbei mal eine Beispieldatei. Gruß Uwe RE: Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? - hziemer - 21.03.2022 Hallo Uwe, erst einmal vielen Dank für Deine Antwort. Ich denke, das Deine Lösung nicht genau mein Problem umfasst. Mit folgendem Code erzeuge ich die Ausgabe Datei: Sub Speichern_mit_Datum() Dim wkbName As String, wkbNeu As String, wksName As String wkbName = ThisWorkbook.Name wksName = ActiveSheet.Name Workbooks.Add wkbNeu = ActiveWorkbook.Name Workbooks(wkbName).Sheets(wksName).Range("A1:h6").Copy Workbooks(wkbNeu).Sheets(1).Range("A1") Workbooks(wkbName).Sheets(wksName).Range("A7:Z8000").Copy Workbooks(wkbNeu).Sheets(1).Range("A7") Dim pfad As String, dateiname As String pfad = "C:\Users\yyyy\Documents\Kunden\xxxx\" dateiname = "Auswertung Heatmap täglich vom " & Range("ah7") & " bis " & Range("ah8") & ".xlsm" 'mit Makro strDname = pfad & dateiname With Application .ScreenUpdating = False .DisplayAlerts = False End With ActiveWorkbook.SaveAs strDname, FileFormat:=xlOpenXMLWorkbookMacroEnabled 'mit Makro ActiveWorkbook.Close End Sub Es soll während der Ausgabe der Datei auch noch ein Makro mit abgespeichert werden. Das kann der Kunde nachdem er das File bekommen ausführen. Ist das so machbar? Danke für eine Antwort hziemer RE: Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? - PetrolMaxxe - 21.03.2022 Hallo, Das was ich dir reingesetzt habe, ist eine Beispieldatei, welche aber alle Werkzeuge enthält, um ein Modul mit der Prozedur zu erzeugen/schreiben. Da ich weder Zellinhalte noch die zu übertragende Prozedur kenne, teste diese Prozedur in einer Ausgangstabelle, welche die relevanten Daten in den für diese Prozedur benötigten Zellen enthält. Ab Line 20 kannst du nach diesem Schema deine Prozedur, welche im Modul des neu erzeugten Arbeitsblattes stehen, eintragen. Achte auf die Verweisaktivierung in der Bibliothek. Code: Option Explicit Gruß Uwe RE: Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? - hziemer - 22.03.2022 Hallo Uwe Zuerst einmal ein großes Danke für Deine Mühe. Aber: Wo bekomme ich die Microsoft Visual Basic for Applications Extensibility 5.3-Bibliothek her? Ich habe das hier gefunden: VBA64-KB822150-X86-DEU.exe. Hier fehlt aber auch ein File wenn ich die EXE entpacke und versuche dann zu installieren. Gibt es noch eine Möglichkeit an die Version 5.3 zu kommen? Danke hziemer RE: Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? - PetrolMaxxe - 22.03.2022 Hallo, - entweder wähle im VBA Editor unter Extras den Menüpunkt Verweise, oder im Befehl: Zitat:Set Mdl = Wb.VBProject.VBComponents.Add(vbext_ct_StdModule)- entferne nach Add "(vbext_ct_StdModule)" - setzte eine neue Klammer nach Add uns wähle vbext_ct_StdModule aus bestätige die Abfrage zur Aktivierung der Bilbliothek Zitat:Set Mdl = Wb.VBProject.VBComponents.Add --> Set Mdl = Wb.VBProject.VBComponents.Add(Das wars auch schon. Gruß Uwe RE: Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? - hziemer - 22.03.2022 Hallo Uwe So einfach geht es wenn man weiß wie es geht. Danke für die Hilfe. Dir noch eine schöne Woche. Gruß hziemer |