Herbers Excel-Forum - das Archiv

Klassenmodul in Personl.xls | Herbers Excel-Forum


Betrifft: Klassenmodul in Personl.xls
von: Reinhard

Geschrieben am: 09.01.2010 09:35:21

Hallo Wissende,
ich möchte aus der personl.xls heraus auf das "Speichern" einer beliebigen anderen Mappe reagieren.
Dazu habe ich in der personl.xls ein Klassenmodul mit dem Namen clsWorkbook und folgendem Code:

Option Explicit
Public WithEvents App As Application
Private Sub App_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As  _
Boolean)
MsgBox "bin in perso"
End Sub
in Modul1 der personl.xls habe ich den Code

Option Explicit
Dim AppObject As New clsWorkbook


Leider tut sich gar nix wenn ich eine andere Mappe speicher. Was muß ich ändern?
Danke ^ Gruß
Reinhard

Betrifft: AW: Klassenmodul in Personl.xls
von: ransi

Geschrieben am: 09.01.2010 09:49:07
HAllo Rheinhard
Da fehlt aber noch ne Kleinigkeit.
Versuch mal:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
'Call Ids_zeigen
Call cls_INI
End Sub


' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public AppObject As New clsWorkbook


Public Sub cls_INI()
Set AppObject = New clsWorkbook
Set AppObject.App = Application
End Sub


' **********************************************************************
' Modul: clsWorkbook Typ: Klassenmodul
' **********************************************************************

Option Explicit
Public WithEvents App As Application

Public Sub App_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As _
    Boolean)

MsgBox "bin in perso"
End Sub


ransi

Betrifft: AW: Klassenmodul in Personl.xls
von: Josef Ehrensberger

Geschrieben am: 09.01.2010 09:52:42
Hallo Reinhard,
du musst die Klasse beim Öffnen der datei erstmal initilaisieren.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
  initializeClass
End Sub

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

Option Explicit

Dim AppObject As New clsWorkbook

Sub initializeClass()
  Set AppObject.App = Application
End Sub

' **********************************************************************
' Modul: clsWorkbook Typ: Klassenmodul
' **********************************************************************

Option Explicit

Public WithEvents App As Application

Private Sub App_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As _
    Boolean)

  MsgBox "bin in perso"
End Sub

Gruß Sepp

Betrifft: Como siempre, großen Dank :-) o.w.T.
von: Reinhard
Geschrieben am: 09.01.2010 10:02:08




Excel-Beispiele zum Thema "Klassenmodul in Personl.xls"
Neues Blatt hinzufügen und Klassenmodul-Code übernehmen Makro aus einer Arbeitsmappe in die Personl.xls kopieren