Herbers Excel-Forum - das Archiv

Modul1.bas

Bild

Betrifft: Modul1.bas
von: Sonnenpeter

Geschrieben am: 03.03.2005 19:31:39
Hallo zusammen,
ich bastele jetzt schon eine geraume Zeit daran ein VBA-Modul in eine neu zu erstellende Arbeitsmappe zu kopieren, bekomme es einfach nicht hin!!
Jetzt bin ich dabei eine .bas Datei abzulegen und diese wieder einzulesen.
Hat den Nachteil, geht nur manuell, Makrorecorder zeichnet nichts auf, die VBA-Hilfe gibt auch nichts her und das VBA-Modul kann nicht schreibgeschützt werden.
Nerv, muss ich aufgeben oder habt ihr da noch eine Idee?
Gruß aus Mainz / Sonnenpeter
PS: Google gibt auch nichts her.
Bild

Betrifft: AW: Modul1.bas
von: Hajo_Zi

Geschrieben am: 03.03.2005 19:45:11
Hallo Sonnenpeter,
warum nicht einfach das Modul im VBA Editor von einer in die andere ziehen?

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Bild

Betrifft: AW: Modul1.bas
von: =Peter=

Geschrieben am: 03.03.2005 19:45:45
Hallo Peter,
vielleicht hilft dir das weiter:
https://www.google.de/groups?as_q=Modul%20importieren%20VBA&as_ugroup=*excel*&lr=&hl=de
Gruss
Peter
Bild

Betrifft: AW: Modul1.bas
von: Heino B

Geschrieben am: 03.03.2005 21:19:10

Folgendes habe ich auf der Internetseite von Monika Weber gefunden.
Orginaltext der Seite:

14.) Module zwischen Projekten kopieren
Es gibt nicht einfach eine Methode, um Module zwischen Projekten zu kopieren. Der Code eines Projektes muss zuerst exportiert werden. Danach kann dieser in ein anderes Projekt importiert werden. Die folgende Prozedur exportiert das "Modul1" von der "Mappe2" in die "Mappe1".
Sub CopyOneModule()
Dim FName As String
With Workbooks("Mappe2")
FName = .Path & "\code.txt"
.VBProject.VBComponents("Modul1").Export FName
End With
Workbooks("Mappe1").VBProject.VBComponents.Import FName
End Sub

Ändere lediglich "Modul1" in den Namen des Moduls, das Du tatsächlich kopieren möchtest. Wenn Du alle Module kopieren möchtest (mit Ausnahme von DieseArbeitsmappe und den Tabellenmodulen), kannst Du den folgenden Code benutzen.
Sub CopyAllModules()
Dim FName As String
Dim VBComp As VBIDE.VBComponent
With Workbooks("Mappe2")
FName = .Path & "\code.txt"
If Dir(FName) <> "" Then
Kill FName
End If
For Each VBComp In .VBProject.VBComponents
If VBComp.Type <> vbext_ct_Document Then
VBComp.Export FName
Workbooks("Mappe1").VBProject.VBComponents. _
Import FName
Kill FName
End If
Next VBComp
End With
End Sub

Bild

Betrifft: Aber Hallo......
von: Sonnenpeter

Geschrieben am: 03.03.2005 21:43:54
Danke Heino,
Sub CopyOneModule()
Dim FName As String
With Workbooks("Mappe2")
FName = .Path & "\code.txt"
.VBProject.VBComponents("Modul1").Export FName
End With
Workbooks("Mappe1").VBProject.VBComponents.Import FName
End Sub

Funktioniert super :-))))
Und was habe ich schon für komplizierte Wege probiert
Sub CopyAllModules()
Dim FName As String
Dim VBComp As VBIDE.VBComponent 'gibt hier den Fehler Bunutzerdefinierter Typ nicht definiert :-(((
With Workbooks("Mappe2")
FName = .Path & "\code.txt"
If Dir(FName) <> "" Then
Kill FName
End If
For Each VBComp In .VBProject.VBComponents
If VBComp.Type <> vbext_ct_Document Then
VBComp.Export FName
Workbooks("Mappe1").VBProject.VBComponents. _
Import FName
Kill FName
End If
Next VBComp
End With
End Sub

Gruß Sonnenpeter
PS: Könntes Du noch die www.Adi der Internetseite von Monika Weber einstellen?
Bild

Betrifft: AW: Aber Hallo......
von: Hajo_Zi
Geschrieben am: 04.03.2005 06:12:22
Hallo
http://www.jumper.ch
Gruß Hajo
Bild

Betrifft: Danke Hajo.....o.T.
von: Sonnenpeter
Geschrieben am: 04.03.2005 17:01:05
.
 Bild