Also:
Wird auf das Kreuz (x) des Fensters der aktiven Arbeitsmappe geklickt, soll
eine VBA-Routine vor dem Schließen des Fensters erst abfragen, ob dieses
Fenster wirklich das einzige offene Fenster in Excel ist. Wenn noch andere
Arbeitsmappen-Fenster offen sind, soll das Schließen mit Sicherheit
verhindert werden.
Kann jemand helfen oder Hinweise geben?
--
Frank
Private Sub Workbook_BeforeClose(Cancel As Boolean)
if Application.Workbooks.Count > 1 then
MsgBox "Es sind noch " & Application.Workbooks.Count & "offen.
Schließen wird abgebrochen"
Cancel = True
end if
End Sub
--
Regards
Frank Kabel
Frankfurt, Germany
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Workbooks.Count > 1 Then
MsgBox "Alle anderen Dateien schließen!"
Cancel = True
End If
End Sub
Funktioniert allerdings nicht bei 2 oder mehr parallel
geöffneten Excel-Tasks.
Gruß
stefan
>-----Originalnachricht-----
>.
>
jetzt habe ich nur noch ein Problem zu lösen:
Mit folgendem Code kann man alle Kontextmenü-Einträge unterbinden:
Public Sub Kontextmenus_aus()
Application.DisplayFormulaBar = False
Application.DisplayStatusBar = False
With Application
.CommandBars("Cell").Enabled = False
.CommandBars("Row").Enabled = False
.CommandBars("Column").Enabled = False
.CommandBars("System").Enabled = False
.CommandBars("Toolbar List").Enabled = False
.CommandBars("Ply").Enabled = False
End With
End Sub
Leider kann man trotzdem mit der rechten Maustaste im Systemmenü des
Fensters noch ein Kontextmenü aufrufen.
Ich will dieses Kontextmenü (was man nur mit der rechten Maustaste erreicht)
unterbinden, zumindest den Befehl "Speichern unter..." wirksam unterbinden.
Mein Ziel:
Die Arbeitsmappe darf nicht unter einem anderen Namen abgespeichert werden,
falls der aktuelle nicht mit einem definierten Präfix beginnt.
--
Frank
"Frank Kabel" <frank...@freenet.de> schrieb im Newsbeitrag
news:OLl8stDA...@TK2MSFTNGP11.phx.gbl...
Frank Petschke schrieb:
> Mit folgendem Code kann man alle Kontextmenü-Einträge unterbinden:
>
> Public Sub Kontextmenus_aus()
> Application.DisplayFormulaBar = False
> Application.DisplayStatusBar = False
> With Application
> .CommandBars("Cell").Enabled = False
> .CommandBars("Row").Enabled = False
> .CommandBars("Column").Enabled = False
> .CommandBars("System").Enabled = False
> .CommandBars("Toolbar List").Enabled = False
> .CommandBars("Ply").Enabled = False
> End With
> End Sub
>
> Leider kann man trotzdem mit der rechten Maustaste im Systemmenü des
> Fensters noch ein Kontextmenü aufrufen.
mit folgendem Code werden alle Kontextmenüs deaktiviert, vielleicht hilft dir das weiter?
For Each cmb In Application.CommandBars
If cmb.Type = msoBarTypePopup Then
cmb.Enabled = False
End If
Next
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
"Melanie Breden" <Melanie.Br...@mvps.org> schrieb im Newsbeitrag
news:c21o35$1o5uva$1...@ID-200118.news.uni-berlin.de...
Frank Petschke schrieb:
> Danke Melanie, das wars!
Bittesehr, ist gern geschehen :-)