Getränle Liste Speichern

28/08/2008 - 08:42 von H. Kröhan | Report spam
Hallo NG
Ich speichere meine personalisierte Getrànke Liste wie folgt:
in DieseArbeitsmappe steht folgendes Modul:

Public Sub Workbook_BeforeClose(Cancel As Boolean)
Const FILENAME = "E:\Gàste\Sept\" '/xls wird automtisch ergànzt/
Me.SaveAs FILENAME & Format(Now, "_dd-mm-yyyy_hh.mm.ss") & ".xls"
ThisWorkbook.Close
End Sub

Und einer Schaltfàche in der Tabell ist folgendes zugewiesen:

Sub Schaltflàche1_KlickenSieAuf()
Call DieseArbeitsmappe.Workbook_BeforeClose(False)
ThisWorkbook.Close
End Sub

Dies funktioniert auch alles einwandfrei. Ein Problem habe ich, wenn ich die
gespeicherte Datei spàter aufrufe um offene Betràge aus zu lesen. Habe ich
eine zeite Datei im Verzeichnis. Ist ja eigentlich auch logisch. Wenn ich
aber die geöffnete Datei über das Diskettensymbol oder über "Speichern
unter" speichere wird die alte überschrieben. Aber leider ist bei beiden
Speicherarten das Blatt noch geöffnet. Wer kann mir das so einrichten, das
beim speichern über diese beiden Funktionen auch das Tabellenblatt
geschlossen wird.
Ich bedanke mich schon mal im voraus !

Herbert Kröhan
Tel: 0214 47337
Fax: 0214 4047560
www.bsl-billard.de
 

Lesen sie die antworten

#1 Peter Schleif
28/08/2008 - 10:14 | Warnen spam
H. Kröhan schrieb am 28.08.2008 08:42 Uhr:

Wenn ich
aber die geöffnete Datei über das Diskettensymbol oder über "Speichern
unter" speichere wird die alte überschrieben. Aber leider ist bei beiden
Speicherarten das Blatt noch geöffnet. Wer kann mir das so einrichten, das
beim speichern über diese beiden Funktionen auch das Tabellenblatt
geschlossen wird.



Du musst dazu das Ereignis "Workbook_BeforeSave" abfangen und
behandeln. Das normale Speichern (Diskettensymbol) ist kein Problem.
Aber den Speichern-Unter-Dialog, weil er erst nach der Abarbeitung des
Ereignisses angezeigt wird. Außerdem muss "Workbook_BeforeClose"
angepasst werden, weil dort ebenfalls das BeforeSave-Ereignis
ausgelöst wird.

Ich würde mir diese Vorgehensweise aber nochmal gut überlegen.
Speichern und Speichern-Unter sind Standard-Werkzeuge in jeder
Anwendnung in jedem Betriebsystem. Der User erwartet hier einfach
nicht, dass das Programm (hier die Mappe) damit auch geschlossen wird.
Sowas kann sehr irritierend und kontraproduktiv sein. Ist aber nur
meine Meinung/Erfahrung.

Peter


Public Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo ende
Application.EnableEvents = False

Const FILENAME = "E:\Excel\test"
Me.SaveAs FILENAME &Format(Now,"_dd-mm-yyyy_hh.mm.ss") &".xls"
'ThisWorkbook.Close '/ueberflüssig/

ende:
Application.EnableEvents = True
End Sub


Private Sub Workbook_BeforeSave( _
ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
Dim save_as As Variant

On Error GoTo ende
Application.EnableEvents = False

If Not SaveAsUI Then
Me.Save
Application.EnableEvents = True
Cancel = True
ThisWorkbook.Close
Else
save_as = Application.GetSaveAsFilename(fileFilter:= _
"Microsoft Excel-Arbeitsmappe (*.xls), *.xls")

If save_as <> False Then
Me.SaveAs save_as
Application.EnableEvents = True
Cancel = True
ThisWorkbook.Close
End If
End If

ende:
Application.EnableEvents = True
End Sub

Ähnliche fragen