ich habe folgendes Problem, nach dem ich meinen Code ein wenig optimiert!?!(zumindest ist der Laufzeitfehler raus ;) )
habe ich folgenden Effekt, wenn ich Excel beenden will, wird nur mein Workbook beendet und nach dem das geschlossen ist muss ich Excel nochmal beenden.
Wenn ich nun in Workbook_BeforeClose(Cancel As Boolean) den Befehl Workbooks(ThisWorkbook.Name).Close
lösche kann ich Excel ganz normal schlissen, nur dann bekomme ich Probleme, wenn ich mehrere Excel Sheets geöffnet habe.
Je nach dem auf welchen Sheet der Fokus liegt kommt es zum Laufzeitfehler oder Excel verabschiedet sich ganz mit kritischen Ausnahme Fehler (jedes 5 oder 6 mal).
Weiß jemand wo das Problem liegt?
hier nun der Code
Private Declare Function OpenClipboard Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () _
As Long
Private Declare Function CloseClipboard Lib "user32" () _
As Long
Private Sub Workbook_Open()
Windows(ThisWorkbook.Name).Activate
Sheets("Konfiguration").Select
Cells(100, 3) = " " & ActiveWorkbook.BuiltinDocumentProperties(11).Value
Cells(101, 3) = " " & ActiveWorkbook.BuiltinDocumentProperties(12).Value
Cells(102, 3) = " " & ActiveWorkbook.BuiltinDocumentProperties(7).Value
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Windows(ThisWorkbook.Name).Activate
Call MK1
Call MK2
Call MK3
If OpenClipboard(0&) 0 Then
Call EmptyClipboard
Call CloseClipboard
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Windows(ThisWorkbook.Name).Activate
Call MK1
Call MK2
Call MK3
If OpenClipboard(0&) 0 Then
Call EmptyClipboard
Call CloseClipboard
Workbooks(ThisWorkbook.Name).Close
End If
End Sub
Bem.: MK1 -3 Sind Makros, welche ich mit dem Makrorecorder aufgezeichnet habe um bestimmte Formatierungen auf dem 3 Arbeitsblättern zurück zu kopieren.
Sub MK1()
'
' MK1 Makro
' Makro am 22.02.2009 von Wulfguard aufgezeichnet
'
'
Sheets("Konfiguration").Select
Range("A1:K103").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Formatierung").Select
Range("A1:K103").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1:K103").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Konfiguration").Select
Range("A1:K103").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub