nachdem ihr mir schon bei einigen Herausforderungen geholfen habt, stehe ich jetzt vor einem neuen Problem:
Mein Excel-Formular wird von unterschiedlichen User ausgefüllt und über Klick auf einen Button ein Makro zum Speichern gestartet. In der Datei sind Objekte in "Diese Arbeitsmappe", UserForms sowie zwei Module enthalten.
Wird der Button "Bericht abschließen" geklickt, startet das Makro, welches im Wesentlichen den Speicherpfad und den Dateinamen vorgibt und dann die Datei als .xlsx (FileFormat:=xlOpenXMLWorkbook) speichert.
Jetzt würde ich gerne folgendes integrieren: Bevor die "neue" Datei abgespeichert wird, sollen alle Makros etc. entfernt werden (in der Ausgangsdatei sollen sie vorhanden bleiben). Ich habe dazu auch einen etwas älteren Beitrag von Nepumuk gefunden:
Option Explicit
Public Sub alle_Makros_loeschen()
Dim vbc As Object
With Workbooks("Testmappe.xls").VBProject
For Each vbc In .VBComponents
Select Case vbc.Type
Case 1, 2, 3: .VBComponents.Remove .VBComponents(vbc.Name)
Case 100
With vbc.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
End Sub
Allerdings läuft der Makro bei mir nicht durch, der Fehler scheint in der Zeile "With Workbooks ..." zu liegen. Frage 1: Der Beitrag stammt aus dem Jahr 2004, hat sich hier was Grundsätzliches am Code im Vergleich zu Excel2016 geändert?
Frage 2: Wo und wie muss ich den Code integrieren?
Ich freue mich auf eure Lösungsansätze!
Grüße Chris