Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Modul in neues Arbeitsblatt kopieren

Modul in neues Arbeitsblatt kopieren
28.06.2016 10:58:30
Rookie
Hallo liebe VBA'ler,
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

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Modul in neues Arbeitsblatt kopieren
28.06.2016 11:28:40
Rookie
Habs selber herausgefunden! *grins*
Für alle die das gleiche Problem haben:
Sub Copy ()
Dim sPath As String
sPath = ThisWorkbook.Path & "\" 'Hier darf nicht "Application.Path" stehen!
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
Danke trotzdem an alle!
Gruß
Stefan
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige