Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
444to448
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
444to448
444to448
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem bei Ereignissen mit dem Application-Objekt

Problem bei Ereignissen mit dem Application-Objekt
24.06.2004 14:51:56
Joachim
Hallo zusammen,
vielleicht kann mir jemand weiterhelfen.
Zunächst mal der Code, dann meine Frage(n)!!!
Folgender Code befindet sich in einem ADDIN:
*****DIESE ARBEITSMAPPE*****
Option Explicit

Private Sub Workbook_Open()
Subs.Klasseninitialisierung
End Sub

*****Standardmodul SUBS*****
Option Explicit
Dim x As New Klassenmodul
Sub TestSub()
'Anweisungen, die einen Fehler auslösen
End Sub
Sub Klasseninitialisierung()
Set x.App = Application
End Sub
*****KLASSENMODUL*****
Option Explicit
Public WithEvents App As Application

Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Subs.TestSub
End Sub

Beim Laden des Addins wird über das Workbook_open Ereignis die Prozedur Klasseninitialisierung im Modul 'Subs' aufgerufen.
Sodann reagiert jede Arbeitsmappe wie gewünscht auf die Ereignisse des Application-Objekts.
In meinem Beispiel wird beim Selection_change-Ereignis die Prozedur 'Testsub' aufgerufen.
Wenn sich in der 'Testsub' ein Fehler befindet, wird (wie nicht anders zu erwarten) die Ausführung des Programms unterbrochen. Dann setze ich die Codeausführung in der VBA-IDE zurück und behebe den Fehler.
Leider reagieren dann die Arbeitsmappen nicht mehr auf das Selection_change-Ereignis des Klassenmoduls. Die Klasse muss ich dann erst wieder initialisieren.
Weiß jemand von Euch warum Excel so reagiert?
Kann es sein, dass auch unter anderen Umständen die Ereignisse des Application-Objekts "verschwinden" / bzw. nicht mehr ausgeführt werden?
(...
Bei aller Theorie - das alles hat folgenden Hintergrund:
Ich bin gerade dabei den Code und alle Formulare eines mit der Zeit sehr komplex gewordenen Berechnungsprogramms in ein AddIn auszulagern.
Mein Ziel ist es die Excelmappe so gut wie komplett von VBA-Code zu befreien.
In der Excelmappe befindet sich im Workbook_open-Ereignis nur noch der Code für das Laden des Addins.
Im Addin befindet sich wie in meinem Beispiel von oben ein Klassenmodul mit den Ereignissen des Application-Objekts. Außerdem sind dort nun alle für die Programmausführung notwendigen Formulare und Prozeduren.
Momentan bin ich nun dabei alle Fehler auszumerzen und stelle nun , dass wenn die Programmausführung unterbrochen wurde, die Ereignisse des Application-Objekts nicht funktionieren.
Ich hoffe jetzt, dass ich mit meinem Vorhaben und der Idee eines Addins nicht in eine Sackgasse laufe.
...)
Klingt alles sehr kompliziert!?
Ich sag jetzt schon mal VIELEN DANK

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem bei Ereignissen mit dem Application-Objekt
K.Rola
Hallo,
welche Art der Fehlerunterbrechung hast du in den Optionen gewählt?
Gruß K.Rola
AW: Problem bei Ereignissen mit dem Application-Objekt
Joachim
Unterbrechung bei "Nicht verarbeiteten Fehlern"
AW: Problem bei Ereignissen mit dem Application-Objekt
K.Rola
Hallo,
solch eine Klasse wie deine, wird eigentlich nur zerstört, wenn du im Code
rumbastelst und das passiert ja nur in der Entwicklungsphase. Bei Klassen,
die auf Dll zugreifen siehst da schon anders aus.
Will sagen, bei einer vernünftigen Fehlerbehandlung brauchst du im echten
Betrieb nicht damit zu rechnen, dass die Klasse aussteigt.
Gruß K.Rola
AW: Problem bei Ereignissen mit dem Application-Objekt
Joachim
Hallo K.Rola
danke für die Auskunft.
Jetzt kann ich ja beruhigt weiter programmieren....
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige