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

ThisWorkbook.close

ThisWorkbook.close
07.05.2008 11:23:00
Daniel
Hallo,
ich habe folgendes Problem bei dem ich gerade auf dem Schlauch stehe:
Ich habe ein Workbook mit verschiedenen Makros und anweisungen, eine davon ist ein Button, der das Workbook über den Befehl Thisworkbook.Close schliesst. In der workbook_activate Prozedur der Arbeitsmappe blende ich alle Commandbars aus, in der worksheet_deactivate blende ich Sie wieder ein.
Wenn ich nun den Button zum Schliessen des Workbooks drücke, habe ich nun die Möglichkeit zu speichern oder eben nicht. In beiden Fällen schließt das Workbook und blendet vorher alle Commandbars ein. Drücke ich aber auf "Abbrechen", dann sind die Makros zwar weiterhin aktiviert (alle Buttons beispielsweise funktionieren), aber die Commandbars werden nicht wieder ausgeblendet.
Jetzt wäre die Frage, ob ich entweder das "Abbrechen" aus dem Dialog rausbekomme oder die Workbook_activate halt nochmal aufgerufen wird (oder das eigentliche Makro, das die Bars ausblendet), um den Ausgangszustand nach dem Canceln wiederherzustellen...
Für Denkanstösse wäre ich sehr dankbar, vielleicht ne' Select case oder so, ich weiss nur nicht wie ich das Ergebnis des Abfragedialogs (speichern: "Ja", "Nein", "Abbrechen") bekomme....
Danke Danniel

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ThisWorkbook.close
07.05.2008 11:42:09
rene
Hallo Daniel,
dies ist ne Kurzfassung von "Beenden" ohne abbrechen bzw. geht bei "Nein" alles in den Ursprung bzw. bleibt wie es ist.
Sub Beenden()
Meld = MsgBox("Haben Sie die eingegebenen Daten gespeichert?." & Chr(10) & _
" " & Chr(10), vbYesNo + vbExclamation + vbDefaultButton2, "Eintrag löschen?")
If Meld = 6 Then
ThisWorkbook.Save
ThisWorkbook.Close savechanges:=False
End If
End Sub


und hier meine Fassung meiner Bar, öffnen und schließen (als Denkanstoß)


Private Sub Workbook_BeforeClose(cancel As Boolean)
For Each c In Application.CommandBars
c.Enabled = True
Next
Application.CommandBars("Navigation").Delete
End Sub


Sub Workbook_Open()
For Each c In Application.CommandBars
c.Enabled = False
Next
If Application.DisplayFormulaBar = True Then
Application.DisplayFormulaBar = False
End If
End Sub


lass die Frage weiter offen bis keine Denkanstösse mehr da sind... :-)
LG rene

Anzeige
AW: ThisWorkbook.close
07.05.2008 12:06:54
fcs
Hallo Daniel,
bei folgender Struktur der Makros/Prozeduren sollte es eigentlich funktionieren.
Auch wenn schließen in den Menüs oder in Fenster-Titel-Leiste gewählt wird. Bleiben die Symbolleisten unverändert, wenn im Standard-Excel-Sicherheitshinweis "Abbrechen" gewählt wird.
Gruß
Franz

'Code für die Schließen-Schaltfläche/Button
Sub Schaltfläche1_BeiKlick()
'Schliessen der Datei
If ThisWorkbook.Saved = True Then
ThisWorkbook.Close
Else
Auswahl = MsgBox("Die Datei ist noch nicht gespeichert!" & vbLf & vbLf _
& "Jetzt speichern?", vbQuestion + vbYesNoCancel, "Datei schließen")
Select Case Auswahl
Case vbYes
ThisWorkbook.Save
ThisWorkbook.Close
Case vbNo
ThisWorkbook.Close Savechanges:=False
Case vbCancel
End Select
End If
End Sub
'Code unter DieseArbeitsmappe
Private Sub Workbook_Activate()
MsgBox "Aktion beim Aktivieren"
Call MenuesAusblenden
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Aktion vor dem schließen"
'Sonstige Aktionen vor dem Schliessen die nicht in Deactivate enthalten sind
End Sub
Private Sub Workbook_Deactivate()
MsgBox "Aktion beim Deaktivieren"
Call MenuesEinblenden
End Sub
Private Sub Workbook_Open()
MsgBox "Aktion beim Öffnen"
'Sonstige Aktionen beim Öffnen die nicht in Activate enthalten sind
End Sub
'Die Prozeduren zum Ein-/Ausblenden der Menüs in einem allg. Modul oder unter DieseArbeitsmappe
Sub MenuesEinblenden()
MsgBox "Menues Einblenden"
End Sub
Sub MenuesAusblenden()
MsgBox "Menues Ausblenden"
End Sub


Anzeige
AW: ThisWorkbook.close
07.05.2008 20:03:00
Danielsan
Noch ein kleines application.displayalerts = false um die Sicherheitsabfrage zu verhindern, zack das war's, dank euch beiden...
...
Case vbYes
ThisWorkbook.Saveas ...
msgbox activeworkbook.fullname, vbokonly, "Datei gespeichert unter..."
application.displayalerts = false
call unlockwindow
ThisWorkbook.Close
...
Ich hab noch ne Inputbox zum eingeben des gewünschten Speichernamens reingehauen und lass den Speicherpfad anzeigen, echt elegant geworden und auch soweit ich eben rumgetstet habe narrensicher, die Menüs werden erst wieder eingeblendet und das Fenster "unlocked" nachdem der User keinen Zugriff mehr auf die Mappe hat,...
Schlauer durch Herber!
Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige