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"