Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
292to296
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
292to296
292to296
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Workbook schließen

Workbook schließen
17.08.2003 21:08:45
Katrin
Hallo zusammen,
ich möchte das man das Workbook nur aus einer Userform schließen kann ohne Veränderungen zu speichern.
Das schließen des Workbooks oder Worksheets habe ich mit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Anweisung verhindert.
Klappt auch alles bis hierhin wunderbar.
Doch sobald ich den Button zum schließen auf meiner Userform drücke, wird das ereignis immer noch ausgeführt. Ist ja auch noch logisch.
Doch wie kann ich das jetzt umgehen?
Gruß Kati

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbook schließen
17.08.2003 21:13:33
Hajo_Zi
Hallo Katrin
ist das nicht ein Wiederspruch
"ich möchte das man das Workbook nur aus einer Userform schließen kann ohne Veränderungen zu speichern."
"Doch sobald ich den Button zum schließen auf meiner Userform drücke, wird das ereignis immer noch ausgeführt. Ist ja auch noch logisch.
Doch wie kann ich das jetzt umgehen? "
Was möchtest Du umgehen??
Code wäre auch nicht schlecht.
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.
Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.

Anzeige
AW: Workbook schließen
17.08.2003 21:27:19
Katrin
Ich versuche es verständlicher zu beschreiben,
aus meiner Userform, dient zur Eingabemaske und als Auswahlmenü.
Mit einem Menüpunkt springe ich in einer Tabelle wobei die Userfrom
geschlossen wird. Jetzt ist die tabelle aktiv und mit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Eigenschaft verhindere ich das man das Workbook jetzt schließen kann.
Somit bin ich gezwungen den Button in der Tabelle zu betätigen der mir
die Userform(Auswahlmenü) wieder startet.
In der Userform habe ich den Button Exit eingerichtet mit dem ich
das Workbook oder die Application schließen möchte( Ohne das Veränderungen gespeichert werden, wird alles schon vorher geregelt, aber er würde ja dennoch fragen sobald eine Änderung vorgenommen wurde).
Also kurz, ich möchte nur so erzwingen das man die Application oder Workbook nur über meine Userform schließen kann.
Ich hoffe ich habs gut beschrieben wie und was ich vorhabe?

Anzeige
AW: Workbook schließen
17.08.2003 21:33:49
Hajo_Zi
Hallo Katrin
ich sehe den Code trotz Brille nicht.
Definiere im Modul eine Variable vom Typ Boolean. Setzte diese Variable auf True, wenn die Datei über die Userform geschloßen werden soll und überprüfe jetzt in BeforeClose ob Variable True.

Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.
Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.

Anzeige
AW: Workbook schließen
17.08.2003 21:52:04
RAnton
Genau was ich vorgeschlagen hatte.
Gruß
RAnton

AW: Workbook schließen
17.08.2003 21:55:42
Katrin
Danke Dir, doch bis jetzt hat es nicht bei mir gefunzt.
Ich habe es aber ausprobiert.

AW: Workbook schließen
17.08.2003 21:58:32
RAnton
Wo hast du den Code eingebracht?
Gruß
RAnton

AW: Workbook schließen
17.08.2003 22:05:28
Katrin
Hab ich oben geschrieben, in DieseArbeitsmappe

AW: Workbook schließen
17.08.2003 22:14:01
RAnton
Ich meinte den Code, den ich dir vorgeschlagen hatte.

AW: Workbook schließen
17.08.2003 22:18:55
Katrin
den code habe ich so angewand

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If userformda = False Then
MsgBox ("Bitte Programm übers Haubtmenü" & Chr(13) & "beenden!")
Cancel = True
Else
Cancel = False
End If
End Sub

und die Dim Anweisung wird deklariert sobald die Userform aufgerufen wird mit
Dim userformda as Boolean

Anzeige
AW: Workbook schließen
17.08.2003 22:21:47
RAnton
Also so hatte ich dir den Code nicht vorgeschlagen....oder.
Probier doch einfach das aus was ich vorgeschlagen habe und dann sollte es funktionieren.
Alles klar.
Gruß
RAnton

AW: Workbook schließen
17.08.2003 22:27:56
katrin
Sorry,
doch wenn ich diesen Code übernehme, bekomme ich nur Fehlermeldungen
kannst Du ihn bitte nochmals überprüfen?
static bln_schonmalda as boolean
if bln_schonmalda as boolean then bln_schonmalda as boolean=false
else bln_schonmalda as boolean=true
endif
if bln_schonmalda as boolean then exit sub
danke

AW: Workbook schließen
17.08.2003 22:33:17
RAnton
Ok, mein Fehler.
So müsste es sein.
static bln_schonmalda as boolean
if bln_schonmalda then bln_schonmalda=false
else bln_schonmalda=true
endif
if bln_schonmalda then exit sub
Viel Erfolg.
RAnton

Anzeige
AW: Workbook schließen
17.08.2003 22:45:03
Ramses
Hallo,
"Static" Variablen behalten doch ihre Gültigkeit nur innerhalb der Prozedur und solange der Code ausgeführt wird.
Dieser Typ ist eigentlich nicht brauchbar um das zu realisieren was du willst.
Da müsste es doch eigentlich heissen
In ein Modul oder in den Header der Userform!:
Public uf_Offen As Boolean
Wenn die UF geöffnet wird die Variable mit
uf_offen = True
und wenn die Uform geschlossen wird, dann wieder mit
uf_offen = False
die Variable auf "Falsch" setzen. Dann kann im Workbook_BeforeClose Ereignis abgefragt werden.
Option Explicit

Private Sub Workbook_beforeclose()
If UF_Offen = False Then
MsgBox "Schliessen nur über die Userform"
Cancel = True
End If
End Sub

Gruss Rainer

Anzeige
AW: Workbook schließen
17.08.2003 23:26:17
Katrin
Ich dreh nochmal am Rad, habe jetzt alles ausprobiert und es will nicht
funktionieren.
Vielleicht mache ich ja einen Fehler bei der Deklaration der Variable
Wo muß ich diese hineinschreiben?
Nur im Header der Userform oder überall da wo ich sie benutzen möchte?

AW: Workbook schließen
17.08.2003 22:45:39
Katrin
Naja, klappt nicht so ganz,
kannst Du mir vielleicht meine Code so umstellen das er funzt?
DIESER CODE STEHT IN DIESEARBEITSMAPPE

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If userformda = False Then
MsgBox ("Bitte Programm übers Haubtmenü" & Chr(13) & "beenden!")
Cancel = True
Else
If userformda = True Then
Cancel = False
Application.Quit
End If
End If
End Sub

DIESER CODE STEHT IM BUTTON EXIT DER USERFORM

Private Sub CommandButton14_Click()
userformda = True
Application.Quit
End Sub

Wo ist denn mein Fehler?? Ist doch fast das selbe wie deine Strucktur

Anzeige
AW: Workbook schließen
17.08.2003 23:16:45
RAnton
so müsste es gehen.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Static userformda As Boolean
If userformda Then
MsgBox ("Bitte Programm übers Haubtmenü" & Chr(13) & "beenden!")
Cancel = True
userformda = False
Else
If userformda = False Then
Cancel = False
Application.Quit
End If
End If
End Sub

und die Routine ..ändern

Private Sub CommandButton14_Click()
Application.Quit
End Sub

Gruß
RAnton

AW: Workbook schließen
17.08.2003 23:34:36
Katrin
Ich muß dich leider enttäuschen,
jetzt wird das das workbook geschlossen sobald ich schließen in der Tabelle betätige

Anzeige
AW: Workbook schließen
17.08.2003 23:39:57
RAnton
Kann eigentlich nicht sein. stell doch mal deine datei zum server.
Gruß
RAnton

AW: Workbook schließen
17.08.2003 23:44:55
Katrin
Ich habe es genauso übernommen

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Static userformda As Boolean
If userformda Then
MsgBox ("Bitte Programm übers Haubtmenü" & Chr(13) & "beenden!")
Cancel = True
userformda = False
Else
If userformda = False Then
Cancel = False
Application.Quit
End If
End If
End Sub

die Meldung bitte übers Haubtmenü schliessen erscheint garnicht mehr!

Wo ist die Datei?
17.08.2003 23:53:48
RAnton
-

AW: Wo ist die Datei?
18.08.2003 00:04:29
Katrin
ist oben sorry,
ich habe mal das ganze Programm hochgeschickt
https://www.herber.de/bbs/user/613.xls

Anzeige
AW: Workbook schließen
17.08.2003 21:54:09
Katrin
Hallo Hajo,
hier der Code der in dieseArbeitsmappe steht,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If userformda = False Then
MsgBox ("Bitte Programm übers Haubtmenü" & Chr(13) & "beenden!")
Cancel = True
Else
Cancel = False
End If
End Sub

die Dim Anweisung für Userformda wird angewiesen sobald die Userform über ein Macro geöffnet wird, vom Typ Boolean.
So wie es jetzt ist, wird das schließen aus der Tabelle verhindert( es klappt),
sobald die userform wieder geöffnet wird habe ich immer noch den selben Effect.
Die gleiche Fehlermeldung kommt und das Workbook wird nicht geschlossen.

AW: Workbook schließen
17.08.2003 21:16:11
RAnton
Hallo Kati,
wenn ich dich richitg verstanden habe, rufst du innerhalb der Routine Workbook_BeforeClose die Userform auf.
Wenn das so ist, dann mache folgendes in der Routine Workbook_BeforeClose
static bln_schonmalda as boolean
if bln_schonmalda as boolean then bln_schonmalda as boolean=false
else bln_schonmalda as boolean=true
endif
if bln_schonmalda as boolean then exit sub
.....hier kommt dein Code
das müsste so gehen.
Gruß
RAnton

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige