HERBERS Excel-Forum - das Archiv
Automatisch schliessen ohne Speichern, bedingt
Florian

Hallo liebes Forum,
etwas kompliziert:
ich haben eine Originaldatei (LagerListeOriginal.xls), die sich mit jedem Schliessen als Kopiedatei (Lagerliste_Kopie.xls) selbst speichert. Die Kopie kann von jedem eingesehen werden und enthält denselben Code. Die Originaldatei soll jedesmal 100% gespeichert werden (ohne zu fragen). Die Kopiedatei soll vom fremden User niemals geändert werden, sondern nur durch Kopie aus der Originaldatei heraus (also per Makro).
Mein Problem nun:
Wenn die Kopiedatei geöffnet ist erscheint bei Schliessen auch die Meldung "sollen Änderungen ... gespeichert werden?". Wie schalte ich diese Meldung aus und setze sie automatisch auf nicht speichern?
Danke im Voraus!
Option Explicit
Dim MyPath As String, UhrZeit As String, Bruker As String
Dim OriginalLagerD As Workbook, SelgerLagerD As Workbook
Dim OriginalLagerS As Worksheet, SelgerLagerS As Worksheet
Dim i As Integer, j As Integer, LastRowLager As Integer


Sub LagerlisteSelger_generieren()  'Generiert die Kopiedatei der Lagerliste
Application.DisplayAlerts = False
If ThisWorkbook.Name <> "LagerListeOriginal.xls" Then End
MyPath = ThisWorkbook.Path
'   Lege Sicherheitskopie der Lagerliste (=diese Datei) an
ThisWorkbook.Sheets("Lager").Unprotect Password:="gfz"
LastRowLager = ThisWorkbook.Sheets("Lager").Cells(Rows.Count, 1).End(xlUp).Row - Not  _
IsEmpty(ThisWorkbook.Sheets("Lager").Cells(Rows.Count, 1).End(xlUp)) - 1
ThisWorkbook.Sheets("Lager").Protect Password:="gfz"
ThisWorkbook.Save
ThisWorkbook.SaveAs Filename:="\\PFAD\Lagerliste_Kopie.xls"
Workbooks(Workbooks.Count).Close SaveChanges:=True
End Sub


AW: Automatisch schliessen ohne Speichern, bedingt
Chris

Servus,
eigentlich so:


Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Name <> "LagerListeOriginal.xls" Then
ThisWorkbook.Saved = True
Else
' anderes makro
End If
End Sub


Gruß
Chris

AW: Automatisch schliessen ohne Speichern, bedingt
Andreas

Hi Florian,
versuche es mal mit
ThisWorkbook.Saved = True
im Event Workbook_BeforeClose. Abfangen müsstest du dann auch noch das Event Workbook_BeforeSave, damit nicht versehentlich hier auch gespeichert wird.
HOffe das hilft weiter.
Viele Grüße
Andreas

AW: Automatisch schliessen ohne Speichern, bedingt
Rudi

Hallo,
in DieseArbeitsmappe:


Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = ThisWorkbook.Name Like "*_Kopie.xls"
End Sub


Gruß
Rudi

AW: Automatisch schliessen ohne Speichern, bedingt
Chris

Servus,
eine weitere Option wäre:


Private Sub Workbook_Open()
If ThisWorkbook.Name <> "ListeLagerOriginal.xls" Then
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
End If
End Sub


und


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ThisWorkbook.Name <> "LagerListeOriginal.xls" Then
Cancel = SaveAsUI
End If
End Sub


Sub SchreibschutzEINAUS()
'
With ActiveWorkbook
If .ReadOnly = True Then
ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite
Else
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
End If
End Sub


Gruß
Chris

AW: Automatisch schliessen ohne Speichern, bedingt
Florian

Hallo zusammen,
erst mal Danke an alle für die tolle Hilfe!
Ich hab jetzt die letzte Variante von Chris ausprobiert. Mein Problem ist noch, dass zwei Dialogboxen erscheinen, die zum Speichern aufrufen.
Die erste "Do you want to save changes before switchning the file status?", wenn ich da nein mache, dann kommt vor dem Schließen die zweite Box "Do you want to save changes..?", wenn ich ja mache, dann weist er darauf hin, dass es nur unter einem anderen File-Namen möglich ist. Meine Frage: wie kann ich die Dialogboxen abschalten? Application.DisplayAlerts = false hab ich schon.
Danke, Gruss Florian

1. Lsg klappt! Danke oT
Florian

--