Herbers Excel-Forum - das Archiv

ausschließlich über Icon Datei schließen

Bild

Betrifft: ausschließlich über Icon Datei schließen
von: Edgar

Geschrieben am: 14.02.2005 15:35:09
Hallo Profis!
Ich möchte über ein Makro in auto open alle Symbolleisten ausblenden, die Arbeitsblatt -Menüleiste ausblenden und das X zum schließen von Excel verschwinden lassen.
Auf dem Wooksheet soll dann ein Icon oder Schaltfläche kreiert werden, über das man die Datei ohne speichern schließt. Es soll ein schließen ausschließlich (!!!) über dieses Icon möglich sein.
Ist das machbar?
Danke Edgar
Bild

Betrifft: AW: ausschließlich über Icon Datei schließen
von: Matthias G

Geschrieben am: 14.02.2005 15:49:20
Hallo Edgar,
Bedenke, dass durch Makro-Sicherheit: mittel das Auto Open Makro übergangen
werden kann, und dass es User prinzipiell nicht so gern mögen, wenn Du Ihnen
an die Symbolleisten willst. Wenn überhaupt lässt sich das Excel-X nur über API
ausblenden. Doch da gibts noch Alt-F4, Datei - Beenden, Taskmanager...
gruß
matthias
Bild

Betrifft: AW: ausschließlich über Icon Datei schließen
von: Edgar

Geschrieben am: 14.02.2005 15:58:05
Hallo Matthias,
das soll keine absolute Sicherheit werden.
Ich will nur verhindern, daß Dösbaddel die Datei zwar öffnen und darin arbeiten können, sie aber dann ohne Änderung schließen.
Wichtig ist, daß es nicht das X oben rechts in der Ecke gibt um Excel zu schließen.
Wer sich besser auskennt kann ruhig machen was er will.
Gruß Edgar
Bild

Betrifft: AW: ausschließlich über Icon Datei schließen
von: UweD

Geschrieben am: 14.02.2005 15:56:55
Hallo

sieh dir mal die Datei an und versuch mal zu speichern, bzw. zu beenden.
https://www.herber.de/bbs/user/18053.xls

Enthält foldenen Code:
'in DieseArbeitsmappe
'
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Kein schließen
If Ja = 1 Then
Ja = 0
Exit Sub
End If
Cancel = True
MsgBox "Datei wurde NICHT gesichert"
Application.EnableEvents = False
ThisWorkbook.Close savechanges:=False
Application.EnableEvents = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Ja = 1 Then
Ja = 0
Exit Sub
End If
Cancel = True
MsgBox "geht nicht"
End Sub


'In ein Modul
Public Ja
Sub erlauben()
Ja = 1
MsgBox "OK, geht jetzt"
End Sub

Gruß UweD
Bild

Betrifft: AW: ausschließlich über Icon Datei schließen
von: Edgar
Geschrieben am: 14.02.2005 16:05:30
Hallo Uwe,
habe ich einfach so in ein Modul übernommen.
Speichen geht immernoch und nach Änderungen fragt er beim Schließen, ob gespeichert werden soll.
?????????
Edgar
Bild

Betrifft: AW: ausschließlich über Icon Datei schließen
von: UweD

Geschrieben am: 14.02.2005 16:20:19
Hi
Ich hatte doch drübergeschrieben, wohin die einzelnen Codes sollen..
in DieseArbeitsmappe
Kommt dieses:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Kein schließen
If Ja = 1 Then
Ja = 0
Exit Sub
End If
Cancel = True
MsgBox "Datei wurde NICHT gesichert"
Application.EnableEvents = False
ThisWorkbook.Close savechanges:=False
Application.EnableEvents = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Ja = 1 Then
Ja = 0
Exit Sub
End If
Cancel = True
MsgBox "geht nicht"
End Sub


In ein Normales Modul:
Das ist der Notschalter, der dann doch darf
Public Ja
Sub erlauben()
Ja = 1
MsgBox "OK, geht jetzt"
End Sub

außerdem hatte ich die fertige Datei hochgeladen.
https://www.herber.de/bbs/user/18053.xls
Gruß UweD
Bild

Betrifft: AW: ausschließlich über Icon Datei schließen
von: Edgar
Geschrieben am: 14.02.2005 16:35:47
Ich habs begriffen
Danke Edgar
Bild

Betrifft: oooopppsss
von: UweD

Geschrieben am: 14.02.2005 16:43:09
Hallo nochmal

das klappt ja nur einmal... Die Events bleiben ausgeschaltet und dann gehts das nächste mal nicht mehr.

so klappts aber:
in DieseArbeitsmappe

Private Merker
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Merker = True Then Exit Sub
If Ja = 1 Then
Ja = 0
Exit Sub
End If
Cancel = True
Merker = True
MsgBox "Datei wurde NICHT gesichert"
ThisWorkbook.Close savechanges:=False
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Ja = 1 Then
Ja = 0
Exit Sub
End If
Cancel = True
MsgBox "geht nicht"
End Sub

https://www.herber.de/bbs/user/18057.xls
Gruß Uwe
Bild

Betrifft: AW: oooopppsss
von: Edgar
Geschrieben am: 14.02.2005 21:37:35
Super, klappt allel
Danke Edgar
 Bild