Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA-Komponenten per VBA kopieren
#1
Hallo liebes Forum !

Leider habe ich schon wieder ein Problem:
Ich habe aus einem Beitrag einen Code zum Kopieren von Modulen in eine andere (neue) Datei gefunden.
Leider funktioniert der Code so nicht, da er die Komponenten immer in die Datei kopiert in der Code steht, womit sie dann doppelt wären.
Anstatt einer neuen Datei würde ich eine andere Datei wählen, aber das müsste im Prinzip ja dann egal sein.

Code:
Sub Komponenten_in_neue_Datei_exportieren()

'alle VBE-Komponenten dieser Mappe in neue Datei exportieren
Dim Ding As Object
Dim Pfad As String

Workbooks.Add

On Error Resume Next

For Each Ding In ThisWorkbook.VBProject.VBComponents  
   Pfad = ThisWorkbook.Path & "\" & Ding.Name
   Ding.Export Pfad
   
   With ActiveWorkbook
     Application.VBE.ActiveVBProject.VBComponents.Import Pfad
   End With

   Kill Pfad
   'Kill Pfad & ".frx"

Next Ding
MsgBox "alles in neue Datei kopiert", , ""

End Sub
Kann mir bitte vielleicht jemand helfen.
Vielen Dank.
Liebe Grüße aus Innsbruck
Helmut
Antworten Top
#2
Hallo Helmut,

Code:
Sub Komponenten_in_neue_Datei_exportieren()
 'alle VBE-Komponenten dieser Mappe in neue Datei exportieren
 Dim Ding As Object
 Dim Pfad As String
 Dim Ziel As Workbook
 
 Set Ziel = Workbooks.Add
 'On Error Resume Next
 For Each Ding In ThisWorkbook.VBProject.VBComponents
    Pfad = ThisWorkbook.Path & "\" & Ding.Name
    Ding.Export Pfad
    Ziel.VBProject.VBComponents.Import Pfad
    Kill Pfad
    'Kill Pfad & ".frx"
 Next Ding
 MsgBox "alles in neue Datei kopiert", , ""
End Sub

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • heli
Antworten Top
#3
Hi

ist nicht sauber, so auf die Schnelle, aber zum Weiterbasteln sollte es reichen

Code:
       Workbooks("Dein Workbook").Sheets(1).Activate ' statt .Add
       With ActiveWorkbook
           .VBProject.VBComponents.Import Pfad
       End With

da ist aber generell noch etwas mehr Nacharbeit notwendig, siehe die Erläuterungen in den Links deines anderen Beitrages, merkst Du auch wenn Du obiges am Laufen hast
 
Grüße,
Winny
[-] Folgende(r) 1 Nutzer sagt Danke an Winny für diesen Beitrag:
  • heli
Antworten Top
#4
Hallo Uwe, Hallo Winny !

Vielen Dank für Eure Hilfe, jetzt funktioniert es.

Liebe Grüße
Helmut
Antworten Top


Gehe zu:


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