Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
356to360
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
356to360
356to360
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mappe schliessen über X verhindern

Mappe schliessen über X verhindern
28.12.2003 00:35:20
Jens
Hallo zusammen

Eine Frage

Ich möchte das beim Versuch die Arbeitsmappe über das X, oben rechts, zu schliessen, eine Infobox erscheint, mit der Aufforderung: "Bitte schliessen Sie die Arbeitsmappe über die Beenden Schaltfläche!".
Wenn man aber ein zweites Mal darauf klickt soll sich Excel so wie immer verhalten. Dann kommt ja immer die Frage "Möchte sie die Arbeitsmappe speichern usw..
Wie bekommt man das hin?

Gruß Jens

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mappe schliessen über X verhindern
28.12.2003 12:53:48
Jens
Hallo Nepumuk

Danke, funktioniert super.

Eine kleine Frage habe ich nur.

Da ich schon eine Schaltfläche zum schliessen hatte, habe ich meinen Code mit Deiner Abweisung:
bolbeenden = True
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
ergänzt.

Der gesamte Code sieht nun so aus.


Sub Oberfläche_schliessen()
'Zusatzbefehl das Excel über Schliessen Schaltfläche zu beenden ist
bolbeenden = True
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
'weiter gehts
Dim sMsg As String
'Meldung ausgeben
sMsg = "Sie möchten die Oberfläche schliessen?"
'Abfragefenster mit Ja, Nein oder (wahlweise) Abbruch
Select Case MsgBox(sMsg, vbInformation + vbYesNo) 'oder vbYesNeCancel
'Bei Bestätigung mit Ja
Case vbYes: _
'alle Schaltflächen mit "?" ausblenden
ActiveSheet.Shapes("Button 133").Visible = False
ActiveSheet.Shapes("Button 134").Visible = False
ActiveSheet.Shapes("Button 135").Visible = False
ActiveSheet.Shapes("Button 136").Visible = False
ActiveSheet.Shapes("Button 137").Visible = False
ActiveSheet.Shapes("Button 139").Visible = False
ActiveSheet.Shapes("Button 140").Visible = False
ActiveSheet.Shapes("Button 141").Visible = False
ActiveSheet.Shapes("Button 142").Visible = False
ActiveSheet.Shapes("Button 143").Visible = False
ActiveSheet.Shapes("Button 144").Visible = False
ActiveSheet.Shapes("Button 145").Visible = False
ActiveSheet.Shapes("Button 146").Visible = False
ActiveSheet.Shapes("Button 147").Visible = False
ActiveSheet.Shapes("Button 148").Visible = False
ActiveSheet.Shapes("Button 149").Visible = False
ActiveSheet.Shapes("Button 150").Visible = False
ActiveSheet.Shapes("Button 151").Visible = False
ActiveSheet.Shapes("Button 152").Visible = False
ActiveSheet.Shapes("Button 153").Visible = False
ActiveSheet.Shapes("Button 154").Visible = False
ActiveSheet.Shapes("Button 155").Visible = False
ActiveSheet.Shapes("Button 156").Visible = False
ActiveSheet.Shapes("Button 157").Visible = False
ActiveSheet.Shapes("Button 158").Visible = False
ActiveSheet.Shapes("Button 159").Visible = False
ActiveSheet.Shapes("Button 160").Visible = False
ActiveSheet.Shapes("Button 161").Visible = False
ActiveSheet.Shapes("Button 162").Visible = False
ActiveSheet.Shapes("Button 163").Visible = False
ActiveSheet.Shapes("Button 164").Visible = False
ActiveSheet.Shapes("Button 165").Visible = False
ActiveSheet.Shapes("Button 166").Visible = False
ActiveSheet.Shapes("Button 167").Visible = False
ActiveSheet.Shapes("Button 168").Visible = False
ActiveSheet.Shapes("Button 169").Visible = False
ActiveSheet.Shapes("Button 170").Visible = False
ActiveSheet.Shapes("Button 171").Visible = False
ActiveSheet.Shapes("Button 172").Visible = False
ActiveSheet.Shapes("Button 173").Visible = False
ActiveSheet.Shapes("Button 174").Visible = False
ActiveSheet.Shapes("Button 175").Visible = False
ActiveSheet.Shapes("Button 176").Visible = False
ActiveSheet.Shapes("Button 177").Visible = False
ActiveSheet.Shapes("Button 178").Visible = False
'///Steuerungschaltflächen für (?) ein- bzw. einblenden
ActiveSheet.Shapes("Button 180").Visible = False
ActiveSheet.Shapes("Button 181").Visible = True
'Auf Zelle I2 springen
Range("I2").Select
'Oberfläche speichern
ActiveWorkbook.Save
'Excel schliessen
Application.Quit
End Select
End Sub


Die ganzen auszublendenden Schaltflächen (?) sind bei mir kleine Hilfe Schaltflächen, in denen sich Erklärungen befinden. Soweit sogut.

Klickt man jetzt auf das X erscheint auch der Hinweis. Prima
Schliesst man über die Schliessen Schaltfläche, funktioniert das auch. Auch Prima.

Jetzt habe ich aber beim Schliessen über die Schliessen Schaltfläche eine Abfrage vorgeschaltet.

"Schliessen Ja / nein"

Bei klick auf Ja, ist logisch, schliesst die Oberfläche.
Beim Klick auf nein, setzt sich der Schliessvorgang aber fort, da Excel jetzt wohl meint man habe zuerst auf das X geklickt und da soll ja bekannter Massen der Hinweis zum Schliessen über die Schliessen Schaltfläche nur einmal erscheinen.

Habe ich noch eine, mir nicht bekannte, Möglichkeit, dass zu unterbinden bzw. das Erscheinen des Hinweises um mehrere Male zu erweitern. Keine Benutzer wird, wenn er es nicht weiß, 5x versuchen über das X zu schliessen. Diese Möglichkeit wollte ich eigentlich nur für mich haben, wenn ich mal die Oberfläche modifiziere und was nicht funktionieren, damit ich halt ein zwei oder drei x auf das X klicken kann und dann erst die Frage kommen soll, speichern ja /nein und ich dann mit nein bestätigen könnte.

Wäre toll wenn es dafür auch noch ne Lösung gebe.
Ansonsten muss ich halt die Fragerei Schliessen Ja /nein rausnehmen.

Ich danke Dir schon mal im Voraus.

Gruß Jens
Anzeige
AW: Mappe schliessen über X verhindern
28.12.2003 13:48:50
Nepumuk
Hallo Jens,
wenn es um das Makro "Oberfläche_schliessen" geht, dann darfst du bolbeenden und die Anweisung "If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close" natürlich nicht an den Anfang des Makros schreiben, sondern an die Stelle, wodein Kommentar 'Excel schließen steht. Du kannst auch aus der Boolschen Variablen bolbeenden eine Integervariable machen und im Workbook_BeforeClose Ereignis immer eins dazu addieren. Erst wenn die Variable z.B. den Wert 5 hat, dann schließen. Eine andere Möglichkeit wäre das Schließenkreuz ganz weg zu nehmen und nur du kennst die Tastenkombination wie doch geschlossen werden kann. Oder du baust eine Kennwortabfrage ein, wenn nicht über die Schaltfläche geschlossen wird. Oder oder oder .......... Da fallen mir viele Möglichkeiten ein.
Gruß
Nepumuk
Anzeige
AW: Mappe schliessen über X verhindern
28.12.2003 16:13:21
Jens
Danke Nepumuk

Habt Deinen Code jetzt an die richtige Stelle gesetzt und es funktioniert.
Bin manchmal ein richtiger Schussel und ich muss gestehen, auch zu unerfahren was die ganze Programmiererei angeht.

Ist zwar toll das Du mir die ganzen tollen Möglichkeiten mit Integervariable, Schließkreuz ganz weg oder Passwortabfrage etc. aufzählst, und das Dir noch mehr einfällt kann ich mir auch lebhaft vorstellen, aber dazu reicht mein Verständnis über VBA leider noch nicht aus. Ich muß mir so was erst immer mal zeigen und erklären lassen, damit ich das auch verstehe. Wenn ich das dann geschnallt habe kann ich auch was damit anfangen.

Trotzdem vielen herzlichen Dank für Deine Mühe und wir lesen bestimmt wieder von einander. Vielleicht fällt Dir auch was zu meinem weiteren Beitrag ein (Word öffnen und die Symbolleisten fehlen).

Gruß Jens
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige