Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1064to1068
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ereignisse für Application definieren

Ereignisse für Application definieren
29.03.2009 00:49:54
Klaus
Hallo zusammen,
ich möchte, dass eine bestimmte Funktion immer dann ausgeführt wird, bevor gedruckt wird (ähnlich wie: Workbook_BeforePrint), nur dass diese Funktion automatisch für alle auf meinem Computer geöffneten Excel-Workbooks (und nicht nur das aktuelle oder neu erstellte Workbooks) ausgeführt werden soll.
Ich vermute, man muß Excel dazu bringen, dass das "Application" Objekt auf das Ereignis "BeforePrint" reagiert, aber wie mache ich das? Mit der Hilfe zum Application Objekt kam ich jedenfalls nicht klar.
Habe leider nicht soviel Erfahrung mit Klassenmodulen.
Vielen Dank für Euere Hilfe
Gruß
Klaus

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ereignisse für Application definieren
29.03.2009 08:34:38
ransi
HAllo Klaus
Versuchs mal so:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit


Private Sub Workbook_Open()
    Call Ini
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Dim KlasseExcel As cls_ExcelApp


Public Sub Ini()
    Set KlasseExcel = New cls_ExcelApp
    Set KlasseExcel.MyExcel = Application
End Sub

' **********************************************************************
' Modul: cls_ExcelApp Typ: Klassenmodul
' **********************************************************************

Option Explicit

Public WithEvents MyExcel As Application


Private Sub MyExcel_WorkbookBeforePrint(ByVal Wb As Workbook, Cancel As Boolean)
    MsgBox "Makrostart"
End Sub

http://www.online-excel.de/excel/singsel_vba.php?f=58
ransi
Anzeige
AW: Ereignisse für Application definieren
29.03.2009 21:40:50
klaus
Hallo Ransi, vielen Dank für Deine Idee ich habe es genau so wie Du vorgeschlagen hast gemacht (inkl. Umbenennung des Klassenmoduls in "cls_ExcelApp"), aber:
1. beim komplilieren kommt der Fehler hoch, dass die Methode .MyExcel nicht gefunden wurde
2. Ich wollte eigentlich verhindern, dass ich nun in jedes mögliche Excel-Workbook (ich habe einige...) einen VBA-Code wie:

Private Sub Workbook_Open()
Call Ini
End Sub


oder ein allgemeines Modul
einfügen muß, dann kann ich nämlich gleich überall den Code für Workbook_BeforePrint einfügen...
Hat jemand evtl noch eine Idee dazu? (Evtl. über Makro in Mappe.xlt im Ordner XLStart ?)
Alternativ wäre es ja vielleicht auch möglich ein Makro zu schreiben, dass den Workbook_BeforePrint-Code automatisch beim Start eines beliebigen Workbooks in dieses Workbook (bzw. das Modul "diese Arbeitsmappe" kopiert (aber wie gesagt nicht einfach im Workbook_Open, denn dann muß ich den Code wieder zigfach kopieren...)?
Vielen Dank für weitere Ideen
Gruß
Klaus

Anzeige
AW: Ereignisse für Application definieren
30.03.2009 09:57:21
fcs
Hallo Klaus,
ich hab den Vorschlag von ransi eben mal bei mir unter EXCEL 2003 implementiert. Funktioniert einwandfrei. Die MsgBox "Makrostart" wird vor dem Drucken bzw. der Seitenvorschau der jeweils aktiven Arbeitsmappe ausgeführt.
Wichtig ist, dass du diese Prozeduren und Module in deiner persönlichen Makroarbeitsmappe "PERSONL.XLS" einrichtest.
Dann Excel schließen, dabei ggf. die Abfrage zum Speichern der persönlichen Makroarbeitsmappe mit Ja bestätigen. Anschließend Excel neu starten.
Gruß
Franz
AW: Ereignisse für Application definieren
30.03.2009 17:20:35
ransi
HAllo
Hier mal eine Beispieldatei.
Die funzt einwandfrei.
https://www.herber.de/bbs/user/60824.xls
Hast du evtl. Makrosicherheit auf hoch ?
ransi
Anzeige
AW: Ereignisse für Application definieren
31.03.2009 21:35:23
Klaus
Hallo Franz und Ransi,
vielen Dank für Eure Hilfe. Ich hatte meine Datei als XLT/Vorlage gespeichert, dann fkt. das Makro seltsamerweise nicht. Wenn ich sie jedoch als XLS im Ordner XLStart ablege (und sie damit jedesmal beim Öffnen von Excel gestartet wird) klappts.... ?
Gruß
AW: Ereignisse für Application definieren
01.04.2009 10:21:36
fcs
Hallo Klaus,
das automatische Starten der Datei über den Excel-Start-Ordner ist die Alternative zum Einbau der Makros in die perönliche Makroarbeitsmappe, die beim Excel-Start ja auch immer als ausgeblendete Mappe geöffnet wird.
Vorteil beim Start via separater Datei. Man kann diese Datei/Makros relativ einfach auf anderen Rechnern/für andere User einrichten.
Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige