Makro in "Diese Arbeitsmappe" in andere verschiebe

Bild

Betrifft: Makro in "Diese Arbeitsmappe" in andere verschiebe
von: R.Schmitt
Geschrieben am: 08.03.2005 13:19:23
Makro in "Diese Arbeitsmappe" in andere verschiebeN
muß es heißen. Oben war dafür leider kein Platz mehr ;-))

Liebe freiwilligen Helfer,
zusammen mit einigen Arbeitsblättern
verschiebe ich auch ein Modul in eine
neu erstellte Datei. Klappt alles her-
vorragend, bis auf das verschieben des
Makros in "Diese Arbeitsmappe" wo ein
"workbook-beforeprint" Makro drinsteht.
Wie bekomme ich denn nun dieses von A
nach B ?
Vielen Dank
R.Schmitt

Bild

Betrifft: AW: Makro in "Diese Arbeitsmappe" in andere versch
von: Matthias G
Geschrieben am: 08.03.2005 13:38:31
Hallo R.Schmitt,
ich habe das so gelöst: In "DiesArbeitsmappe habe ich nur Prozeduraufrufe:
Private Sub Workbook_Activate()
WB_Activate
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
WB_BeforeClose Cancel
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
WB_BeforePrint Cancel
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
WB_BeforeSave SaveAsUI, Cancel
End Sub
Private Sub Workbook_Deactivate()
WB_Deactivate
End Sub
Private Sub Workbook_Open()
WB_Open
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
WB_SheetActivate Sh
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
WB_SheetBeforeDoubleClick Sh, Target, Cancel
End Sub
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
WB_SheetBeforeRightClick Sh, Target, Cancel
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
WB_SheetChange Sh, Target
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
WB_SheetSelectionChange Sh, Target
End Sub
und in einem "normalen" Modul habe ich dann den eigentlichen Code mit den o.a. Prozedurnamen stehen.
z.B.
Sub WB_BeforeClose(Cancel As Boolean)
If SofortBeenden Then Exit Sub
DoEvents
If Not HatRecht("öffnen") Then Exit Sub
PlanSchliessen Cancel
End Sub
(ist nur ein spezielles Beispiel)
Der Code kann aus "DieseArbeitsmappe" 1:1 übernommen werden.
Ich hab' das so gemacht, weil ein normales Modul leichter auszutauschen ist als ein Klassenmodul.
Gruß Matthias
Bild

Betrifft: Schon klar...aber................
von: R.Schmitt
Geschrieben am: 08.03.2005 13:45:07
also zunächst mal Dankeschön.
aber erklär mir nur kurz wie ich
genau diese drei Zeilen in
"Diese Arbeitsmappe" in der soeben
neu angelegten Datei bekomme :

Private Sub Workbook_Activate()
WB_Activate
End Sub


?????? R.Schmitt ????
Bild

Betrifft: AW: Schon klar...aber................
von: Matthias G
Geschrieben am: 08.03.2005 13:53:02
Hallo R.,
frei nach diesem Beitrag:
https://www.herber.de/forum/archiv/356to360/t358529.htm
Sub WB_CodeAdd()
Dim VBCodeMod, LineNum
Workbooks.Add
Set VBCodeMod = ActiveWorkbook.VBProject.VBComponents("DieseArbeitsmappe").CodeModule
With VBCodeMod
LineNum = .CountOfLines + 1
.insertlines LineNum, _
    "Private Sub Workbook_Activate()" & Chr(13) & _
    "WB_Activate" & Chr(13) & _
    "End Sub"
End With
End Sub
Gruß Matthias
Bild

Betrifft: Klappt - Danke vielmals
von: R.Schmitt
Geschrieben am: 09.03.2005 08:41:42
Danke Danke
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro in "Diese Arbeitsmappe" in andere verschiebe"