AW: tabellenblatt
03.11.2007 11:40:00
Daniel
Hi
das Problem ist, daß man mit diesen Veränderungen doch recht tief ins Excel eingreifst und eventuell Veränderungen durchführst, die der Normalanwender im Fehlerfall nicht mehr von Hand wieder zurücksetzen kann.
Da ist ein Status "VBA-nur mit Recorder" schon problematisch, vorallem wenn man davon ausgehen kann, daß du dieses Programm eventuell anderen Personen zur verfügung stellen willst, die dann noch weniger Ahunng von Excel haben als du.
Diesen Personen bist DU dann dafür verantwortlich, daß deine Anwendungen sauber funktionieren und nicht ihr Excel zerschießen und die Arbeitsfähigkeit einschränken.
Von daher solltest du dir genau überlegen, was du tust und nur das einsetzen, was du auch wirklich beherschst und ausgiebig in allen möglichen Fehlbedienungsvarianten getestest hast.
Nichstdestotrotz:
hier ein Makro, um die Commandbars auszublenden.
die aktuellen Einstellungen werden auf einem versteckten Blatt gesichert, um sie individuell wieder herstellen zu können.
die Menüleiste bleibt aus verständlichen gründen sichtbar.
Sub Ausblenden()
Dim shS As Worksheet
Dim x As Long
On Error GoTo Fehler
Set shS = ThisWorkbook.Sheets("Sicherung")
On Error GoTo 0
'Prüfen, ob nicht schon Ausgeblendet ist
If shS.Cells(1, 1).Value = True Then Exit Sub
'Kennung für "Ausgeblendet" setzen
shS.Cells(1, 1).Value = True
'Bildschirmeinstellungen sichern und ausblenden
With Application
shS.Cells(1, 2) = .DisplayFormulaBar
shS.Cells(2, 2) = .DisplayStatusBar
.DisplayFormulaBar = False
.DisplayStatusBar = False
End With
With ActiveWindow
shS.Cells(3, 2) = .DisplayHorizontalScrollBar
shS.Cells(4, 2) = .DisplayVerticalScrollBar
shS.Cells(5, 2) = .DisplayWorkbookTabs
shS.Cells(6, 2) = .DisplayGridlines
shS.Cells(7, 2) = .DisplayHeadings
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
.DisplayWorkbookTabs = False
.DisplayGridlines = False
.DisplayHeadings = False
End With
'Commandbars sichern und ausblenden
On Error Resume Next
For x = 1 To Application.CommandBars.Count
With Application.CommandBars(x)
shS.Cells(x, 3).Value = .Visible
.Visible = False
End With
Next
On Error GoTo 0
Exit Sub
'Falls nicht vorhanden, Sicherungsblatt erstellen
Fehler:
Application.ScreenUpdating = False
Set shS = ActiveSheet
Sheets.Add after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ActiveSheet.Name = "Sicherung"
shS.Activate
Sheets("sicherung").Visible = 2
Application.ScreenUpdating = True
Resume
End Sub
Dieses Makro kannst du dann zum Wiederherstellen der Einstellungen verwenden:
Sub Einblenden()
Dim x As Long
Dim shS As Worksheet
On Error GoTo Fehler
Set shS = ThisWorkbook.Sheets("Sicherung")
On Error GoTo 0
'Kennung für "Ausgeblendet" wieder löschen"
shS.Cells(1, 1).Value = ""
'Bildschirmeinstellungen wieder herstellen
With Application
.DisplayFormulaBar = shS.Cells(1, 2)
.DisplayStatusBar = shS.Cells(2, 2)
End With
With ActiveWindow
.DisplayHorizontalScrollBar = shS.Cells(3, 2)
.DisplayVerticalScrollBar = shS.Cells(4, 2)
.DisplayWorkbookTabs = shS.Cells(5, 2)
.DisplayGridlines = shS.Cells(6, 2)
.DisplayHeadings = shS.Cells(7, 2)
End With
'Commandbars sichern und ausblenden
On Error Resume Next
For x = 1 To Application.CommandBars.Count
Application.CommandBars(x).Visible = shS.Cells(x, 3).Value
Next
On Error GoTo 0
Exit Sub
Fehler:
MsgBox "Pech gehabt, keine Wiederherstellung der Bildschirmeinstellungen möglich"
End Sub
Dieses Makro MUSS UNBEDINGT ins Modul "DieseArbeitsmappe", weil es sicherstellt, daß beim Schließen die Commandbars wieder eingeblendet werden:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Einblenden
End Sub
und denk immer daran, die Verantwortung gegenüber deinen Kollegen hast du, also vor einsatz ausgiebig testen!
Gruß, Daniel