Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
660to664
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
660to664
660to664
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

xlVeryHidden Code von Hajo, brauche Erläuterung

xlVeryHidden Code von Hajo, brauche Erläuterung
05.09.2005 22:53:28
Hajo,
Hallo Hajo, hallo alle,
habe Code von Hajo aus 2003 im Archiv gefunden:
Option Explicit
Dim InI As Integer
Dim ByS As Boolean
' erstellt von Hajo.Ziplies@web.de 13.01.03

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'    blendest alle anderen Register aus
'    Sheets("Tabelle2").Visible = xlVeryHidden aus außer Tabelle1
Dim Mldg As Byte
If ActiveWorkbook.Saved Then     ' Datei wurde verändert
Worksheets("Tabelle1").Visible = True
For InI = Worksheets.Count To 1 Step -1
If Worksheets(InI).Name <> "Tabelle1" Then Worksheets(InI).Visible = xlVeryHidden
Next InI
ByS = True
ThisWorkbook.Save
Else
If ByS = True Then Exit Sub
Mldg = MsgBox(" Sollen die Veränderungen gespeichertg werden ?", _
vbYesNo + vbQuestion, "Speicher abfrage ?", "", 0)
If Mldg = 6 Then
Worksheets("Tabelle1").Visible = True
For InI = Worksheets.Count To 1 Step -1
If Worksheets(InI).Name <> "Tabelle1" Then Worksheets(InI).Visible = xlVeryHidden
Next InI
ByS = True
ThisWorkbook.Save
Else
ByS = True
ThisWorkbook.Close False
End If
End If
End Sub

Verstehe folgende Zeile nicht:
If ActiveWorkbook.Saved Then ' Datei wurde verändert
Wenn Saved = true dann ist die Datei doch schon gespeichert, warum muss Sie dann nochmal gesichert werden? Da im Folgecode (habe ich nicht angefügt) das manuelle Speichern mit BeforeSave abgefangen wurde, kann doch der Zustand Saved = true nur eintreten (bzw. von Anfang an vorhanden sein), wenn NICHTS verändert wurde?!?! Dann brauche ich auch nicht nochmal Save aufzurufen, oder?
Eigentlich müsste doch der Code im Else mit vorangestellter Zeile reichen:
If ActiveWorkbook.Saved = false Then ' Datei wurde verändert, Code hinter else ausführen
...
Der Link zum alten Thread ist: https://www.herber.de/forum/index.htm?https://www.herber.de/forum/archiv/236to240/t239282.htm
Viele Grüße und danke für den Tip :)
Norman

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: xlVeryHidden Code von Hajo, brauche Erläuterung
06.09.2005 16:20:19
Hajo,
Hallo Norman,
du hast im Prinzip recht. Workbook.Saved bedeutet Arbeitsmappe im momentanen Zustand bereits gespeichert. Trotzdem muß hier nochmal gespeichert werden, denn nach der Abfrage Workbook.Saved wird die Arbeitsmappe ja vom Makro selbst nochmal verändert (Ausblenden aller Blätter, mit Ausnahme von "Tabelle1"). Der obere Bereich ist also schon für den Fall gedacht, dass die Arbeitsmappe nicht mehr verändert wurde. Nach dem Else kommt ja auch noch die Abfrage per MsgBox: Sollen die Veränderungen gespeichertg werden ?
Gruß Ingolf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige