Microsoft Excel

Herbers Excel/VBA-Archiv

Automatisch schliessen ohne Speichern, bedingt

Betrifft: Automatisch schliessen ohne Speichern, bedingt von: Florian
Geschrieben am: 16.06.2008 11:02:19

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


  

Betrifft: AW: Automatisch schliessen ohne Speichern, bedingt von: Chris
Geschrieben am: 16.06.2008 11:17:47

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


  

Betrifft: AW: Automatisch schliessen ohne Speichern, bedingt von: Andreas Emmert
Geschrieben am: 16.06.2008 11:19:30

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


  

Betrifft: AW: Automatisch schliessen ohne Speichern, bedingt von: Rudi Maintaire
Geschrieben am: 16.06.2008 11:24:19

Hallo,
in DieseArbeitsmappe:

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


Gruß
Rudi


  

Betrifft: AW: Automatisch schliessen ohne Speichern, bedingt von: Chris
Geschrieben am: 16.06.2008 11:59:43

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


  

Betrifft: AW: Automatisch schliessen ohne Speichern, bedingt von: Florian
Geschrieben am: 16.06.2008 20:49:33

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


  

Betrifft: 1. Lsg klappt! Danke oT von: Florian
Geschrieben am: 16.06.2008 21:36:16

--


 

Beiträge aus den Excel-Beispielen zum Thema "Automatisch schliessen ohne Speichern, bedingt"