Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben?
#5
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

Sub NeuesWorkbookErzeugen()
    Dim Wb As Workbook, Mdl As VBComponent, WbName As String
    Dim wkbName As String, wkbNeu As String, wksName As String
    Dim pfad As String, dateiname As String, strDname$

    wkbName = ThisWorkbook.Name
    wksName = ActiveSheet.Name
    Set Wb = Workbooks.Add(1)
    wkbNeu = Wb.Name
    pfad = "C:\Users\yyyy\Documents\Kunden\xxxx\"
    dateiname = "Auswertung Heatmap täglich vom " & Range("ah7") & " bis " & Range("ah8") & ".xlsm" 'mit Makro

    ' Verweis aktivieren "Microsoft Visual Basic for Applications Extensibility 5.3-Bibliothek" erforderlich!
    Set Mdl = Wb.VBProject.VBComponents.Add(vbext_ct_StdModule)
   
    ' fügt Prozedur in neu erzeugtes Modul ein und benennt es um
    With Mdl.CodeModule
        .InsertLines 1, "Sub MeinModul()"
        .InsertLines 2, "'Durch eine Prozedur eingefügt"
        .InsertLines 3, "     MsgBox ""Das soll deine Prozedur sein"" "
        .InsertLines 4, "End Sub"
        .Name = "Mdl_Test"
    End With
    ' Übertragen der Datensätze in die neue Datei
    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")
    ' speichern
    strDname = pfad & dateiname
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With
        ActiveWorkbook.SaveAs strDname, FileFormat:=xlOpenXMLWorkbookMacroEnabled  'mit Makro
    With Application
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With
    Set Mdl = Nothing
    Set Wb = Nothing
    ActiveWorkbook.Close
End Sub
Ich hoffe es hilft dir weiter.

Gruß Uwe


Angehängte Dateien
.xlsm   Mappe1 erzeugt Tabellenblätter und schreibt Makro in allgem.Modul und Tabellenmodul(1).xlsm (Größe: 27,35 KB / Downloads: 6)
Zitieren


Nachrichten in diesem Thema
RE: Wie kann ich ein Makro bei einer Dateiausgabe mit ausgeben? - von PetrolMaxxe - 21.03.2022, 23:11

Gehe zu:


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




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions