Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
936to940
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Arbeitsblätter ausblenden

Arbeitsblätter ausblenden
09.01.2008 11:42:00
Ralf_P
Hallo,
eigentlich wollte ich mit folgendem Code beim schließen der Mappe alle Arbeitsblätter (bis auf eins) Ausblenden, damit beim starten ohne Makros keine Möglichkeit besteht, in der Datei zu arbeiten.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Blatt As Worksheet
For Each Blatt In ActiveWorkbook.Worksheets
If Blatt.Name  "Makromeldung" Then
Blatt.Visible = xlSheetVeryHidden
End If
Next Blatt
ActiveWorkbook.Close SaveChanges:=True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub


Das hat aber zur Folge, dass evtl. Änderungen atomatisch gespeichert werden.
Speichert man nicht automatisch, sind auch die zuvor ausgeblendeten Sheets beim nächsten Start wieder sichtbar.
Gibt es da noch eine elegantere Lösung?
Gruß Ralf

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsblätter ausblenden
09.01.2008 12:06:23
Rudi
Hallo,

sind auch die zuvor ausgeblendeten Sheets beim nächsten Start wieder sichtbar.


aber doch nur, wenn du zwischendurch speicherst.
Ergo: in before_save erst ausblenden, speichern und wieder einblenden.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Arbeitsblätter ausblenden
09.01.2008 12:35:33
Ralf_P
Hallo Rudi,
ich glaub Du hast mich falsch verstanden. Bei meiner Variante wird beim schließen entweder
1. gespeichert - um die Blätter für den nächsten Start auszublenden, dann werden aber auch Änderungen gespeichert.
oder
2. nicht gespeichert - dann ist zwar ausgeschlossen, dass evtl. Falsche Eingaben gespeichert werden, aber die Änderung "Blätter für den nächsten Start ausblenden" wird auch nicht gespeichert.
Somit sind sie bei Programmstart mit deaktivierten Makros wieder sichtbar.
Ich möchte eigentlich beim schließen der Datei die Blätter für den nächsten Start ausblenden (setzt speichern vorraus) und gleichzeitig verhindern, dass Fehleingaben gespeichert werden.
Ist ja schließlich so, dass die meisten Anwender, wenn Sie in einer Datei "herumspielen" einfach auf "schließen" klicken, um die vorgenommenen Änderungen zu verwerfen.
Gruß Ralf

Anzeige
AW: Arbeitsblätter ausblenden
09.01.2008 13:05:01
Rudi
Hallo,
dann blende die Blätter vor dem Speichern aus und nach dem Speichern wieder ein. Dann wird immer mit augeblendeten Blättern gespeichert. Beim Schließen ohne Speichern ist somit die gespeicherte Version eine mit ausgeblendeten Blättern.
Before_close kannst du dann löschen.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error GoTo FEHLER
Application.EnableEvents = False
ShowSheets False
ThisWorkbook.Save
Cancel = True
ShowSheets
ThisWorkbook.Saved = True
FEHLER:
Application.EnableEvents = True
End Sub



Sub ShowSheets(Optional blnShow As Boolean = True)
Dim wks As Worksheet
For Each wks In Worksheets
If Not blnShow Then
wks.Visible = (wks.Name = "Makromeldung") * 3 + 2
Else
wks.Visible = -1
End If
Next wks
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
So geht's ! Vielen Dank - OT
09.01.2008 13:59:40
Ralf_P

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige