Herbers Excel-Forum - das Archiv

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
Excel-Beispiele zum Thema "Makro in "Diese Arbeitsmappe" in andere verschiebe"
Blätter in andere Arbeitsmappen kopieren Variablenübergabe in andere Arbeitsmappen
Bezüge auf Namen in anderen Mappen aufheben Blattinhalt von einer zur anderen Arbeitsmappe kopieren
Sicherungskopie in einem anderen Verzeichnis erstellen Teilergebnisse einer Serie von Tabellen in anderes Blatt kopieren
Bei Eingabe andere Werte löschen Eintragungen im 1. Blatt in andere Blätter übernehmen
Währung in der Systemsteuerung/Ländereinstellungen umstellen Zeile mit aktiver Zelle in anderes Blatt kopieren