VBA Private Sub Workbook_Open() optimieren
Matz
ich habe mir hier im Forum aus mehreren VBA Fragementen etwas zusammengebastelt.
Es funktioniert zwar, ich bin mir aber sicher, dass das ganze nicht optimal gebaut ist:
Option Explicit
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.DisplayFullScreen = True
Application.DisplayFormulaBar = False
Application.CalculateBeforeSave = False
Dim wb As Workbook, ws As Worksheet
Set wb = ThisWorkbook
For Each ws In wb.Worksheets
If ws.Type = xlWorksheet Then
If ws.ProtectContents Then
ws.Unprotect Password:=""
End If
ws.Protect Password:="", _
Contents:=True, _
AllowFiltering:=True, _
UserInterfaceOnly:=True
End If
Next ws
Set ws = Nothing
Set wb = Nothing
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
Call SetCommandbar
Application.CalculateBeforeSave = False
End Sub
Was der Code eigentlich machen soll:
- Beim Öffnen der Arbeitsmappe, sollen alle Tabellenblätter geschützt werden, ich möchte aber Makros noch laufen lassen können.
- Alle Symbolleisten, Gitternetzlinien, Überschriften usw. sollen verschwinden und ich möchte im Vollbild arbeiten.
- Die Berechnung soll auf manuell geschaltet werden, so dass vom ersten Moment an nur gerechnet wird, wenn ich das manuell ausführe.
- Auch beim schliessen ,soll die Tabelle nicht automatisch neu berechnet werden.
- Ich möchte nicht sehen, was beim Makroausführen (oder auch beim Blattschützen) alles im Hintergrund passiert, also "Screenupdating" ausschalten.
Es wäre superlieb, wenn sich einer von Euch Cracks den Code mal anschauen würde und mir zeigen würde, was ich richtig habe, was falsch ist und wie es besser sein würde.
Vielen Dank
Viele Grüsse
Matz