Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim objWS As Worksheet
Sheets("Start").Select
Call SchutzAus_Start
hier springt der debugger an Sheets("Start").Range("C25:C26,H65535").Value = ""
Call SchutzEin_Start
For Each objWS In ThisWorkbook.Worksheets
If objWS.Name <> "Start" Then
objWS.Visible = xlSheetHidden
End If
Next
ThisWorkbook.Save
ThisWorkbook.Close
diese zeilen habe ich deaktiviert, weil excel sonst abstürzt
'If Workbooks.Count = 1 Then
' Application.Quit
'Else
' ThisWorkbook.Close True
'End If
End Sub
https://www.herber.de/bbs/user/66091.xls
1
Union(Range("C25:C26"), Range("H65535").ClearContents
sollte es funktionieren.Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Start").Select
Call SchutzAus_Start
Union(Range("C25:C26"), Range("H65535")).ClearContents
Call SchutzEin_Start
ThisWorkbook.Save
die zeile ist dann deaktiviert ThisWorkbook.Close
diese zeilen meine ich
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close True
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim objWS As Worksheet
Sheets("Start").Select
Call SchutzAus_Start
Sheets("Start").Range("C25:C26,H65535").Value = ""
Call SchutzEin_Start
For Each objWS In ThisWorkbook.Worksheets
If objWS.Name <> "Start" Then
objWS.Visible = xlSheetHidden
End If
Next
ThisWorkbook.Save
If Workbooks.Count = 2 Then
Application.Quit
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim objWS As Worksheet
Sheets("Start").Select
Call SchutzAus_Start
Union(Range("C25:C26"), Range("H65535")).ClearContents
Call SchutzEin_Start
For Each objWS In ThisWorkbook.Worksheets
If objWS.Name <> "Start" Then
objWS.Visible = xlSheetHidden
End If
Next
ThisWorkbook.Save
If Workbooks.Count = 2 Then
Cancel = True
Application.Quit
End If
End Sub
Code eingefügt mit VBA in HTML 2.0.0.3
Sheets("Start").Range("C25:C26,H65535").Value = ""
interpretiert Excel bei mir als C25:H65535 (Excel2010 beta). Funktioniert das bei dir tatsächlich wie gewünscht, also C25:C26 und H65535?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim objWS As Worksheet
Dim objWB As Workbook
Dim bolQuit As Boolean
Sheets("Start").Select
Call SchutzAus_Start
Sheets("Start").Range("C25:C26,H65535").Value = ""
Call SchutzEin_Start
For Each objWS In Me.Worksheets
If objWS.Name <> "Start" Then
objWS.Visible = xlSheetHidden
End If
Next
Me.Save
bolQuit = True
For Each objWB In Application.Workbooks
If objWB.Name <> Me.Name Then
If objWB.Windows(1).Visible = True Then
bolQuit = False
Exit For
End If
End If
Next objWB
If bolQuit = True Then Application.Quit
End Sub
Excel wird nur geschlossen, wenn keine weiteren sichtbaren Dateien offen sind!