ich möchte gern ein Modul aus einer in eine andere Arbeitsmappe übertragen. Ich hab auch einen Code gefunden, der genau das machen soll. Leider stimmt irgendwas nicht und ich kommm einfach nicht drauf - hier mal ein Auszug vom gesamten Code bis zum Modul kopieren:
Sub Berichtespeichern()
' Sicherheitsabfrage
If MsgBox(prompt:="Bericht abgeschlossen und fertig zur Ablage?", Buttons:=vbQuestion + vbYesNo) _
= vbNo Then Exit Sub
' Tabellenblatt Maßnahmenplan kopieren und in neue Arbeitmappe einfügen
Dim objShape As Shape
Call Massn.Copy
With ActiveSheet
.UsedRange.Value = .UsedRange.Value
For Each objShape In .Shapes
If objShape.Type = msoFormControl Then Call objShape.Delete
Next
End With
' Vorhandene Makros vorsorglich löschen
With ActiveWorkbook
With .VBProject.VBComponents(.Sheets("Maßnahmenplan").CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
' Formeln zur Weiterverarbeitung in neue Arbeitsmappe("Maßnahmenplan") einfügen
Formel = "=ZÄHLENWENN(V:V;""ja"")"
ActiveSheet.Range("AE5").FormulaLocal = Formel
Formel = "=ZÄHLENWENN(V:V;""nein"")"
ActiveSheet.Range("AE6").FormulaLocal = Formel
Formel = "=AB5-AE5-AE6"
ActiveSheet.Range("AE7").FormulaLocal = Formel
' Modul in neue Arbeitsmappe("Maßnahmenplan") übertragen
Dim sPath As String
sPath = Application.Path & "\"
ThisWorkbook.VBProject _
.VBComponents("transfer").Export sPath & "transfer.bas"
With ActiveWorkbook.VBProject
.VBComponents.Import sPath & "transfer.bas"
.VBComponents("transfer").Name = "feedback"
End With
Kill sPath & "\transfer.bas"
End Sub
Es kommt die Fehlermeldung:Laufzeitfehler 50035:
Die Methode Export für das Objekt _VBComponent ist fehlgeschlagen.
Ich verstehe es nicht ganz. Habt ihr einen Tip für mich was ich da falsch mache?
Gewisse "Einstellungen" habe ich bereits vorgenommen, an dem kanns nicht liegen.
Mit dieser Methode funktioniert das kopieren eines Moduls, aber ich finde die Lösung nicht so sauber:
Sub CopyMod
Dim datei As String
Dim vbP
datei = ThisWorkbook.Path & "\transfer.txt"
ThisWorkbook.VBProject.VBComponents("transfer").Export Filename:=datei
Set vbP = ActiveWorkbook.VBProject
On Error Resume Next
vbP.VBComponents.Remove vbP.VBComponents("transfer")
On Error GoTo 0
vbP.VBComponents.Import Filename:=datei
End Sub
Vielen Dank schon mal für eure Hilfe
Liebe Grüße
Stefan