Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

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




Beiträge aus den Excel-Beispielen zum Thema "Klassenmodul in Personl.xls"