HERBERS Excel-Forum - das Archiv
VBA-Projekt innerhalb Datei kopieren
Gregor

Hallo Excel-Profis
Folgendes Problem, dass ich trotz intensiver Recherche nicht gelöst bekomme:
Möchte das VBA-Projekt der Arbeitsmappe("2") mit dem VBA-Projekt der Arbeitsmappe("1") überschreiben.
(beide Blätter sind in einer Datei).
Kann mir jemand helfen?
Vielen Dank!
Gregor

VBA-Code aus "Tabelle1" in "Tabelle2" kopieren
NoNet

Hallo Gregor,
zunächst einige Hinweis zur Benamung der Excel-Objekte :
Mit "Arbeitsmappe" (kurz "Mappe", engl. "WorkBook") bezeichnet man eine komplette Datei (also z.B. den gesamten Inhalt von "Mappe1.xls").
Innerhalb einer Arbeitsmappe können mehrere "Tabellenblätter" (engl. "WorkSheets"), Diagramme (engl. "Charts") oder andere Blätter existieren (allgemein werden alle Blätter als "Sheets" bezeichnet).
Deine "1" und "2" sind also wohl Tabellenblätter innerhalb der selben Arbeitsmappe, oder ?
Um keine Missverständnisse zu erzeugen, solltest Du also unbedingt die korrekten Bezeichnungen verwenden ;-)
Zu Deinem "Problem" :
- Mit Alt+F11 gelangst Du in den VBA-Editor
- Mit Strg+R kannst Du den Projekt-Explorer einblenden
- Im Projektexplorer findest Du die einzelnen Arbeitsmappen
- Innerhalb der einzelnen Arbeitsmappen die Codemodule der Tabellenblätter und andere Module
- Klicke doppelt auf das Codemodul des Tabellenblattes "1"
- Klicke in das rechte Codefenster und dort Strg+A um alles zu markieren und Strg+C um den Code zu kopieren
- Klicke doppelt auf das Codemodul des Tabellenblattes "2"
- Klicke in das rechte Codefenster und dort Strg+A um alles zu markieren und Strg+V um den Code einzufügen -
   der bestehende Code des Blattes "2" wird dabei gelöscht !
- Schließe das VBA-Fenster und teste den Code - falls OK : Speichern nicht vergessen ;-)
Das war's !
Gruß, NoNet
AW: VBA-Projekt innerhalb Datei kopieren
Gregor

Erstmals vielen Dank für die Antwort.
Konkretisierung:
- VBA-Projekt kopieren vom Tabellenblatt("1") zum Tabellenblatt("2"), d.h. komplett überschreiben
- per VBA (manuell bringe ich das schon hin).
Kennt jemand den Code, um das zu erreichen?
Vielen Dank!
Gregor
Siehe http://vba1.de/vba.php#vbe _oT
NoNet
AW: VBA-Projekt innerhalb Datei kopieren
Rudi

Hallo,
Sub ttt()
Dim sText As String, i As Integer
With ActiveWorkbook.VBProject.vbComponents(Sheets(1).CodeName).CodeModule
For i = 1 To .CountOfLines
sText = sText & .Lines(i, 1) & vbLf
Next
End With
With ActiveWorkbook.VBProject.vbComponents(Sheets(2).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
.AddFromString sText
End With
End Sub

Gruß
Rudi
AW: VBA-Projekt innerhalb Datei kopieren
Gregor

Vielen Dank Rudi!!!!!!!!!!!!!!!
ohne Schleife
Rudi


Sub ttt()
Dim sText As String
With ActiveWorkbook.VBProject.vbComponents(Sheets(1).CodeName).CodeModule
sText = .Lines(1, .CountOfLines)
End With
With ActiveWorkbook.VBProject.vbComponents(Sheets(2).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
.AddFromString sText
End With
End Sub