|  
                                             
	Das "ganze Teil" ist ein kleines Excel, wo im Prinzip ja alles viel klarer ersichtlich ist, als wenn ich es hier poste, oder? Aber ich kann es gerne probieren: 
	In "Diese Arbeitsmappe": 
	Option Explicit                                     ' Variablendefinition erforderlich 
	'************************************************** 
	'* H. Ziplies                                     * 
	'* 16.04.08                                       * 
	'* erstellt von HajoZiplies@web.de                * 
	'* http://Hajo-Excel.de/                          * 
	'************************************************** 
	  
	Private Sub Workbook_Open() 
	    With Sheets("xyz") 
	        ' Ablaufdatum beim ersten Öffen eintragen 
	        If .Range("A1") = "" And Environ("Username") _ 
	            <> "Hajo_Zi" Then .Range("A1") = Date + 30 
	        ' Ablauflaufdatum prüfen 
	        If .Range("A1") <> "" And Date > CDate(.Range("a1")) Then 
	            MsgBox "Ihre Testphase ist abgelaufen," _ 
	                & vbCr & "bitte wenden Sie sich an Ihren Administrator.", _ 
	                48, "Ablaufdatum" 
	            ThisWorkbook.Close False 
	        End If 
	        ' Tabellen einblenden 
	        blenden -1                                  ' Tabellen einblenden 
	        Worksheets("Tabelle1").Select               ' damit diese Tabelle beim Start angezeigt wird 
	        ' damit das einblenden der Register nicht als Veränderung 
	        ' der Datei angesehen wird Schalter Veränderung der 
	        ' Datei zurückstellen 
	        ThisWorkbook.Saved = True                   ' Datei sichern 
	    End With 
	End Sub 
	  
	Private Sub Workbook_BeforeClose(Cancel As Boolean) 
	    If ThisWorkbook.Saved Then Exit Sub 
	    If InSpeicher = 1 Then Exit Sub 
	    InSpeicher = 1 
	    If MsgBox("Wollen Sie die Veränderungen speichern?", vbYesNo + _ 
	        vbQuestion, "Speichern ?") = vbYes Then 
	        blenden 2 
	    Else 
	        ThisWorkbook.Saved = True 
	    End If 
	End Sub 
	  
	Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
	    If SaveAsUI Then 
	        Dim StDateiname As String 
	        ' With da Zeile sonst zu lang 
	        With Application 
	            StDateiname = _ 
	                .GetSaveAsFilename(fileFilter:="Excel-Arbeitsmappen (*.xls), *.xls") 
	        End With 
	        ' ein Dateinmae wurde eingegeben 
	        If UCase(StDateiname) <> "FALSCH" Then 
	            ' Reaktion auf Zellveränderung abschalten 
	            Application.EnableEvents = False 
	            ThisWorkbook.SaveAs Filename:=StDateiname 
	            ' Reaktion auf Zellveränderung einschalten 
	            Application.EnableEvents = True 
	        End If 
	        Cancel = True                               ' speichern unter Dialog abbrechen 
	    End If 
	    Application.ScreenUpdating = False              ' Bildschirmaktualisierung aus 
	    If StTabelle = "" Then 
	        StTabelle = ActiveSheet.Name 
	        ' ausblenden aller Register außer Sheets("Makros_deaktiviert") 
	        ' mit xlVeryHidden (2) dies hat den Vorteil, sie können nur per 
	        ' VBA eingeblendet werden. 
	        blenden 2                                   ' Tabellen ausblenden 
	        Cancel = True 
	    End If 
	    Application.ScreenUpdating = True               ' Bildschirmaktualisierung ein 
	    ' damit das einblenden der Register nicht als Veränderung 
	    ' der Datei angesehen wird Schalter Veränderung der Datei zurückstellen 
	    ThisWorkbook.Saved = True                       ' Datei sichern 
	End Sub 
	  
	Und in Module "mdl_Makro_aktiv" 
	  
	
		Option Explicit                                     ' Variablendefinition erforderlich 
	
		' das Projekt muss nicht als Private definiert werden 
	
		' das Makro kann nur mit Parameter aufgerufen werden 
	
		'************************************************** 
	
		'* H. Ziplies                                     * 
	
		'* 04.02.07                                       * 
	
		'* erstellt von HajoZiplies@web.de                * 
	
		'* http://Hajo-Excel.de/                          * 
	
		'************************************************** 
	
		Public StTabelle As String                          ' ausgewählte Tabelle 
	
		Public InSpeicher As Integer                        ' Datei wird geschlossen 
	
		Dim InI As Integer                                  ' Zählvariable für Register 
	
		  
	
		Sub blenden(InZustand As Integer) 
	
		    'ActiveWorkbook.Unprotect ("Passwort") 
	
		    ' alle Tabellen einblenden vom letzten bis zum ersten 
	
		    ' bis auf Hinweistabelle 
	
		    If InZustand = 2 Then _ 
	
		        Sheets("Makros_deaktiviert").Visible = -1 
	
		    For InI = Sheets.Count To 1 Step -1 
	
		        If Sheets(InI).Name <> "Makros_deaktiviert" _ 
	
		            And Sheets(InI).Name <> "xyz" Then _ 
	
		                Sheets(InI).Visible = InZustand 
	
		    Next InI 
	
		    ' Tabelle mit Hinweis ein- bzw. ausblenden 
	
		    ' Tabelle ausblenden 
	
		    If InZustand <> 2 Then Sheets("Makros_deaktiviert").Visible = 2 
	
		    If StTabelle <> "" Then 
	
		        If Sheets(StTabelle).Visible = -1 Then  ' Tabelle ist sichtbar 
	
		            ' vor speichern gewählte Tabelle wieder aktivieren 
	
		            Sheets(StTabelle).Select 
	
		            StTabelle = ""                          ' Variable zurücksetzen 
	
		        End If 
	
		    End If 
	
		    ' Tabellen wurden ausgelendet, Datei sichern 
	
		    If InZustand = 2 Then 
	
		        Application.EnableEvents = False 
	
		        'ActiveWorkbook.Protect ("Passwort") 
	
		        ThisWorkbook.Save 
	
		        Application.EnableEvents = True 
	
		        If InSpeicher <> 1 Then blenden -1 
	
		    End If 
	
		End Sub 
	
		  
 
     |