Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
332to336
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
332to336
332to336
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

workbook_beforesave

workbook_beforesave
07.11.2003 14:46:16
th.heinrich
bestes Forum,

es soll vermieden werden, dass beim aufruf der menuebefehle SPEICHERN bzw. SPEICHERN UNTER der speicherdialog aufgerufen wird.
mit diesem CODE funzzt es nicht.


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.DisplayAlerts = False
ThisWorkbook.SaveAs _
FileName:="\\stabifix01\ablage\tmp\Reiseberichte\" & Range("b4").Value & "_" & Range("c4").Value & "_" & Range("e1").Value & ".xls"
Sheets("Besuchsbericht").Protect "ni7888"
Application.DisplayAlerts = True
End Sub


es wird immer zuerst der STANDARDARBEITSORDNER von excel als speicherziel angeboten. dies soll aber umgangen werden.

danke von thomas

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Cancel = True
07.11.2003 14:49:04
ChrisL
Hi Thomas


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub


Gruss
Chris
AW: Cancel = True
07.11.2003 16:40:20
th.heinrich
hallo Chris,

danke fuer die antwort, der speicherdialog wird nicht aufgerufen, aber es kommt eine abfrage "wollen sie die aenderungen in REISEBERICHTE1 (datei wurde als .xlt geoeffnet)speichern ?".

diese abfrage soll NICHT erfolgen, sondern die datei muss unter dem angegebenen pfad gespeichert werden.

wobei ich auch nach einigen versuchen nicht weiss wo ich CANCEL = TRUE in meinem CODE unterzubringen habe.

gruss thomas
Anzeige
braucht noch EnableEvents = False
07.11.2003 17:37:04
ChrisL
Hi Thomas

So müsste es gehen...


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.DisplayAlerts = False
Application.EnableEvents = False
ThisWorkbook.SaveAs _
FileName:="\\stabifix01\ablage\tmp\Reiseberichte\" & Range("b4").Value & "_" & Range("c4").Value & "_" & Range("e1").Value & ".xls"
Sheets("Besuchsbericht").Protect "ni7888"
Application.EnableEvents = True
Application.DisplayAlerts = True
Cancel = True
End Sub


Cancel = True bewirkt auch einen Speicherabbruch, wenn du per SaveAs im Code speichern willst. Mit EnableEvents verhinderst du dies.

Gruss
Chris
Anzeige
AW: braucht noch EnableEvents = False
07.11.2003 18:37:59
th.heinrich
hi Chris,

danke fuer die weitere hilfe. bin jetzt zuhause und werde versuchen Deine anregungen am WE an einem einfachen beispiel nachzubauen.

montag auf arbeit kommt dann der ernstfall mit der prob datei in der noch einige andere ereignisse ablaufen.

melde mich auf alle faelle nochmal.

danke thomas
@ChrisL
08.11.2003 13:00:07
th.heinrich
hallo Chris,

habe nun schon einiges ausprobiert, natuerlich ohne den richtigen durchblick, und bin an folgendem haengen geblieben.

https://www.herber.de/forum/archiv/332to336/t335108.htm

neuer thread vom mir.

gruss thomas
Anzeige
AW: @ChrisL
10.11.2003 12:32:37
ChrisL
Hi Thomas

Erstmal... was genau steht in den Zellen (B4, C4 etc.). Hast du evtl. Sonderzeichen, die sich als Dateinamen nicht eignen?

Zweitens... was genau soll eigentlich das Ziel sein. Dein neuer Beitrag, der die Datei auch noch schliesst irritiert mich leicht. Soll nachdem jemand auf Speichern drückt die Datei gleich geschlossen werden? Ist es ein BeforeSave Ereignis oder ein normales Sub etc.

Gruss
Chris
AW: @ChrisL
10.11.2003 18:58:55
th.heinrich
sorry Chris,

fuer die irritation, liegt natuerlich bei mir.

springender punkt ist dies

FileName:="\\stabifix01\ablage\tmp\Reiseberichte\" & Range("b4").Value & "_" & Range("c4").Value & "_" & Range("e1").Value & ".xls"

die datei soll unter diesem pfad gespeichert werden, egal ob der user DATEI-SCHLIESSEN, -SPEICHERN UNTER, -SPEICHERN etc. auswaehlt.

aber leider, siehe den thread mit PeterW, verabschiedet sich excel.

gruss thomas
Anzeige
AW: @ChrisL
11.11.2003 10:36:37
ChrisL
Hi Thomas

' Diese Arbeitsmappe


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Speichern
End Sub



Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call Speichern
Cancel = True
End Sub


' Standardmodul

Sub Speichern()
Application.DisplayAlerts = False
Application.EnableEvents = False
ThisWorkbook.SaveAs _
FileName:="C:\test\" & Range("b4").Value & "_" & Range("c4").Value & "_" & Range("e1").Value & ".xls"
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub


Läuft bei mir ohne Probleme. Mit einem Serverpfad kann ich es leider nicht testen.

Wie erwähnt, musst du darauf achten, dass die Zellen auch tatsächlich brauchbare Inhalte haben (String). Falls du Zahlen hast evtl. mal mit CStr(Range("B4")) probieren.

Gruss
Chris

Gruss
Chris
Anzeige
AW: @ChrisL
11.11.2003 18:30:52
th.heinrich
hallo Chris,

danke fuer Deine neuen anregungen. zum schliessen der datei habe ich jetzt erstmal einen BUTTON hinterlegt, den der User anclicken soll. ist natuerlich alles andere als wasserdicht, naja ich habe es ja noch nicht auf die welt losgelassen ;-)

das mit CStr(Range("B4")) werde ich probieren, denn in E1 steht ein DATUM.

gruss und danke von

thomas
AW: @ChrisL
12.11.2003 10:32:30
ChrisL
Hi Thomas

Vermutlich ist es das Datum, welches den Fehler verursacht. Evtl. musst du noch weiter gehen... Das Datum darf keinen Punkt enhalten, da es sonst mit dem Dateinamen kollidiert. Mögliche Lösung könnte z.B. so aussehen...

CStr(Format(Range("B4"), "ddmmyyyy"))

Gruss
Chris
Anzeige

34 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige