Microsoft Excel

Herbers Excel/VBA-Archiv

Makro ausführen bei schließen der Mappe | Herbers Excel-Forum


Betrifft: Makro ausführen bei schließen der Mappe von: Wolle
Geschrieben am: 26.01.2010 08:21:02

Guten Morgen Forum,

habe da ein Problem mit einem Makro. Ich möchte das es beim schließen der Mappe ausgeführt wird.
Das Makro unterbindet das Kopieren und ziehen von Zellen und wid beim start der Mappe aktiviert mit:

Private Sub Workbook_Open()
    CutCopyOff
End Sub
Dann wollte ich ich das das zweite Makro (zum deaktivieren) beim schließen der Mappe ausgeführt wird, damit es in anderen Anwendungen nicht mehr aktiv ist. NUR KLAPPT DAS NICHT SO RICHTIG!!!!
Private Sub Workbook_Close()
    CutCopyOn
End Sub

Zur Zeit habe ich das Problem das ich, wenn das Makro einmal ausgeführt wurde ich anschließend in keiner Excel Anwendung mehr Koieren durch ziehen kann.

Der Code zum sperren und entsperren habe ich irgendwo aus dem Netz :

Sub CutCopyOff()
CutCopyOnOff 19, False 'Menübefehl "Kopieren"
CutCopyOnOff 21, False 'Menübefehl "Ausschneiden"
CutCopyOnOff 22, False 'Menübefehl "Einfügen"
CutCopyOnOff 755, False 'Menübefehl "Inhalte einfügen"
Application.OnKey "^c", "" 'Kopieren mit "Strg + C"
Application.OnKey "^x", "" 'Ausschneiden mit "Strg + X"
Application.OnKey "^v", "" 'Einfügen mit "Strg + V"
Application.OnKey "^{INSERT}", "" 'Kopieren mit "Strg + Einfg"
Application.OnKey "+{DEL}", "" 'Ausschneiden mit "Umsch + Entf"
Application.OnKey "+{INSERT}", "" 'Einfügen mit "Umsch + Einfg"
Application.CellDragAndDrop = False 'Ziehen mit der Maus
End Sub Sub CutCopyOn()
CutCopyOnOff 19, True
CutCopyOnOff 21, True
CutCopyOnOff 22, True
CutCopyOnOff 755, True
Application.OnKey "^c"
Application.OnKey "^x"
Application.OnKey "^v"
Application.OnKey "^{INSERT}"
Application.OnKey "+{DEL}"
Application.OnKey "+{INSERT}"
Application.CellDragAndDrop = True
End Sub Sub CutCopyOnOff(Id As Variant, AnAus As Boolean)
Dim cb As CommandBar
Dim ctl As CommandBarControl
For Each cb In Application.CommandBars
Set ctl = cb.FindControl(Id:=Id, Recursive:=True)
If Not ctl Is Nothing Then ctl.Enabled = AnAus
Next
End Sub Kann mir jemand helfen, und wenn ja wie???

Gruß und Danke von Wolfgang

  

Betrifft: AW: Makro ausführen bei schließen der Mappe von: Hajo_Zi
Geschrieben am: 26.01.2010 08:33:06

Hallo,

Deine Aktion hat den falschen Namen. Da sind die DropDown Felder im VBA Editor hilfreich.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
GrußformelHomepage


  

Betrifft: AW: Makro ausführen bei schließen der Mappe von: Wolle
Geschrieben am: 26.01.2010 08:41:34

Danke Dir Hajo,

hast mir wieder sehr geholfen.

Gruß Wolfgang


  

Betrifft: AW: Makro ausführen bei schließen der Mappe von: fcs
Geschrieben am: 26.01.2010 08:33:38

Hallo Wolfgang,


benutze

Private Sub Workbook_Activate()
    CutCopyOff
End Sub

Private Sub Workbook_Deactivate()
   CutCopyOn
End Sub

Gruß
Franz


  

Betrifft: AW: Makro ausführen bei schließen der Mappe von: Wolle
Geschrieben am: 26.01.2010 08:42:14

Danke Dir Franz,

hast mir sehr geholfen.

Gruß Wolfgang


  

Betrifft: AW: Makro ausführen bei schließen der Mappe von: Mathias
Geschrieben am: 26.01.2010 08:47:32

Hallo Wolfgang,

du hast lediglich einen Fehler beim Beenden deines Workbooks. Das Ereignis Workbook_close ist kein Standardergegnis. Verwende stattdessen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
CutCopyOn
End Sub
Dort hast du die Möglichkeit bevor das Workbook geschlossen wird die Rückgängigkeit auszuführen.

Gruß
Mathias


  

Betrifft: Danke für Eure Hilfe. von: Wolle
Geschrieben am: 26.01.2010 09:26:19

Ihr seid alle so Klasse. Danke Euch für die Hilfe und auch Erklärungen.

Hier lehrnt man was.

Gruß Wolfgang


Beiträge aus den Excel-Beispielen zum Thema "Makro ausführen bei schließen der Mappe"