Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1144to1148
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Leeres Codemodul per VBA generieren

Leeres Codemodul per VBA generieren
Franz
Hallo Freunde,
Thema Weiterbildung! Ich taste mich peu à peu mit den VBComponents und Co. Habe etliche Proficodes gefunden die mich etwas überfordern. Ich möchte (momentan) lediglich ein neues Modul mittels VBA generieren im untenstehenden Beispiel.
Wer könnte mir weiter helfen?

Sub Uebertrage_Module()
Dim sSOURCE As String, sTARGET As String
sSOURCE = "QUELLE.XLS"
sTARGET = "ZIEL.XLS"
Call CopyCode(sSOURCE, sTARGET, "DieseArbeitsmappe")
Call CopyCode(sSOURCE, sTARGET, "DECLARATIONS")
Call CopyCode(sSOURCE, sTARGET, "C_COMBOXES")
Call CopyCode(sSOURCE, sTARGET, "MAIN")
End Sub

Sub CopyCode(sSOURCE, sTARGET, sMODULNAME)
'Gefunden im Forum von Office-Lösungen - Autor: Nepumuk
Dim objCodeModule As Object
Set objCodeModule = Workbooks(sSOURCE).VBProject.VBComponents(sMODULNAME).CodeModule
'if CodeModule nicht vorhanden dann stelle ein leeres Modul zur Verfügung
With Workbooks(sTARGET).VBProject.VBComponents(sMODULNAME).CodeModule
.DeleteLines 1, .CountOfLines
.InsertLines 1, objCodeModule.Lines(1, objCodeModule.CountOfLines)
End With
MsgBox (sMODULNAME & " wurde erfolgreich aktualisiert.")
End Sub

Mahlzeit!
Franz D.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Leeres Codemodul per VBA generieren
07.03.2010 12:38:57
Josef

Hallo Franz,

Sub CopyCode(sSOURCE, sTARGET, sMODULNAME)
  
  'Gefunden im Forum von Office-Lösungen - Autor: Nepumuk
  
  Dim objCodeModule As Object, objTargetModule As Object
  
  On Error Resume Next
  
  Set objCodeModule = Workbooks(sSOURCE).VBProject.VBComponents(sMODULNAME).CodeModule
  
  On Error GoTo 0
  
  If Not objCodeModule Is Nothing Then
    
    On Error Resume Next
    Set objTargetModule = Workbooks(sTARGET).VBProject.VBComponents(sMODULNAME).CodeModule
    On Error GoTo 0
    
    'if CodeModule nicht vorhanden dann stelle ein leeres Modul zur Verfügung
    
    If objTargetModule Is Nothing Then
      On Error Resume Next
      Set objTargetModule = Workbooks(sTARGET).VBProject.VBComponents.Add(objCodeModule.Parent.Type).CodeModule
      objTargetModule.Name = objCodeModule.Parent.Name
      On Error GoTo 0
    End If
    
    If Not objTargetModule Is Nothing Then
      With objTargetModule
        
        .DeleteLines 1, .CountOfLines
        
        .InsertLines 1, objCodeModule.Lines(1, objCodeModule.CountOfLines)
        
      End With
      
      MsgBox (sMODULNAME & " wurde erfolgreich aktualisiert.")
    End If
  End If
  
End Sub

Gruß Sepp

Anzeige
AW: Leeres Codemodul per VBA generieren
07.03.2010 19:58:59
Franz
Danke Sepp (so darf man dich doch nennen?) für die schnelle Hilfe.
Hätte noch einen Codeschnipsel in der Tabelle1(Name: Einstellungen) zu übertragen. Könnte mir jemand noch behilflich sein wie ich eine ".CLS" Datei updaten kann? Danach hätte ich wahrscheinlich schon einen guten Einstieg in dieser neuen Materie.
Tschüss
Franz D.
AW: Leeres Codemodul per VBA generieren
07.03.2010 21:23:24
Josef

Hallo Franz,
wenn man mich nicht Sepp nennen dürfte, dann würde wohl nicht
Gruß Sepp

am Ende meiner Nachricht stehen;-)))))
Wo befindet sich die .cls bzw. wie soll das Update durchgeführt werden.

Gruß Sepp

Anzeige
AW: Leeres Codemodul per VBA generieren
07.03.2010 21:40:15
Franz
Sorry Sepp,
Trotz Brille! Schande über mich!
Habe lediglich mittels "Code anzeigen" innerhalb der Tabelle1 unbenannt in"Einstellungen", einige Zeilen die ich ggf. gerne auch mit aktualisieren möchte. Falls der Aufwand zu groß wäre kann ich auch darauf verzichten. Habe einige codes durchgelesen. Mein VBA-Wissen ist dazu nicht ausreichend. Bin schon zufrieden die BAS-Module updaten zu können. Dafür nochmals Danke schön!
Tschüss
Franz D.
AW: Leeres Codemodul per VBA generieren
07.03.2010 21:48:13
Josef

Hallo Franz,
das geht mit
Call CopyCode(sSOURCE, sTARGET, "Tabelle1")

wobei "Tabelle1" nicht der Tabellenname ist, sondern der Codename, also der Name den du im VBE vor dem angezeigten Tabellennamen steht.

Gruß Sepp

Anzeige
AW: Leeres Codemodul per VBA generieren
07.03.2010 22:12:49
Franz
Hallo Sepp,
habe es schon integriert und natürlich getestet. Wahsinn! Auch einfacher code funktionniert stabil.
Danke schön an die Herren Ehrensberger und Sepp. Eine stressfreie Woche wünscht...
Franz D.
PS: Danke auch an Nepumuk für die Profi-Codes über VBE-Components (aus 2007)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige