Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
380to384
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
380to384
380to384
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Worksheet_change tritt nicht ein

Worksheet_change tritt nicht ein
16.02.2004 16:11:39
Philipp Maurer
Hallo,
ich habe folgendes Problem. In einem recht umfangreichen Add-In (Assistent zu Leistenplanerstellung mit Schaltsymbolen, automatischem Brücken etc. für Excel).
Das Add-In besteht aus 3 Forms (eine MainForm, About-Dialog etc) und einem Modul mit einem Makro, das eigentlich nur die MainForm (frmMain.Show) aktiviert.
Alles andere wird von dort aus organisiert.
Habe ich nun folgendes Problem:
Es wird unbedingt eine Undo-Function erwünscht, die den letzten Schritt (z.B. Ertstellung eines Schaltsymbols mit Bezeichnung oder das erstellen einer kompletten Brücke) rückgängig machen soll. Eine eigene Undo-Function (mittels
Application.OnUndo Procedure:=....) ist aufgrund der Komplexität der Vorgänge und Symbole nicht möglich, da ein Mitschreiben und Umkehren der Funktionen einen fast uneendlichen Aufwand bedeuten würde.
Also werde ich wohl oder übel immer komplette Kopien der Datei mittels SaveCopyAs in einem festgelegten "Puffer-Pfad" erstellen und bei Wunsch einfach intelligent (z.B. nur das jeweilige ActiveSheet oder so) wieder laden.
Das Problem bestht jetzt darin, das ich nach jeder Änderung Worksheet_Change eine Kopie erstellt werden muss. Aber dieses Ereignis tritt nie ein !!
Ich habe die Sub Worksheet_Change in frmMain kopiert, im Modul, als Public und Private deklariert !! SIe tritt nicht ein. Auch das Beispiel aus der Excel hilfe (Editierte Zeilen mit blauer Schrift) tritt nicht ein !! Ich denke das Problem liegt darin, das die Sub überhaupt nicht von Excel aufgerufen wird...Wo muss sie stehen ?? (Programm ist ein Add-In)

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_change tritt nicht ein
16.02.2004 17:03:52
K.Rola
Hallo,
du brauchst in deinem Add- In ein Klassenmodul, das auf Application-
Ebene die Ereignisse empfangen kann.
Gruß K.Rola
AW: Worksheet_change tritt nicht ein
17.02.2004 09:26:08
Philipp Maurer
Ich habe jetzt ein Klassenmodul eingefügt. Wie muss ich das in die VBA_Applikation einbinden ??
Ich habe den Code aus der Excel-Hilfe eingebunden, funktioniert aber trotzdem nicht.
Sorry, ich habe da mit VB/VBA so einige Probleme, da ich eigentlich C++ programmier.
AW: Worksheet_change tritt nicht ein
17.02.2004 13:23:03
K.Rola
Hallo,
''in das Modul von "DieseArbeitsmappe":
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Unset_AppObject
End Sub


Private Sub Workbook_Open()
Call Set_AppObject
End Sub

''in ein Standardmodul:
Option Explicit
Dim AppObject As New clsWorkbook
Sub Set_AppObject()
Set AppObject.App = Application
End Sub

Sub Unset_AppObject()
Set AppObject.App = Nothing
End Sub


''In das Klassenmodul, dass in diesem Beispiel zwingend
''clsWorkbook heißen muss:
Option Explicit
Public WithEvents App As Application

Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox Sh.Parent.Name & Chr(10) & Sh.Name
End Sub

Dann sollte alles klappen. Wenn nicht, nochmal melden.
Gruß K.Rola
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige