Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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
Inhaltsverzeichnis

before save

before save
29.08.2008 10:43:00
Jonatan
Hallo,
wie kann ich verhindern, dass die Datei unter demselben Namen gespeichert wird?
D.h. es soll nur ein Speichern möglich sein, wenn der Dateiname geändert wurde.
Vielen Dank für eure Hilfe
Gruß Jonatan

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: before save
29.08.2008 10:51:06
Chris
Servus,
ich verstehe zwar den Sinn nicht, aber:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ThisWorkbook.Name = "DeinName.xls" Then
Cancel = True
End If
End Sub


verhindert das Speichern, wenn die Datei "Deinname.xls" heißt.
Gruß
Chris

AW: before save
29.08.2008 11:01:05
Jonatan
DANKE!
Sinn ist folgender:
Die Datei dient als Vorlagendatei, in die Daten reinkopiert werden, dann läuft eine Prozedur ab, dann soll die Datei in einem bestimmten Zielverzeichnis gespeichert werden.
Die Vorlage soll aber so bleiben wie sie war.
Deshalb soll verhindert werden, dass die Datei unter dem gleichen Namen gespeichert wird.
Gruß Jonatan
Anzeige
AW: before save
29.08.2008 11:21:00
AndrRo
Hallo Jonathan,
Warum schützt du die Vorlagendatei nicht in den Eigenschaften mit "Schreibgeschütz" auf Aktiviert, dann keiner diese überscheiben.
gruss
Andreas
AW: before save
29.08.2008 11:27:22
Jonatan
Da hast du völlig recht. Ist völlig ausreichend.
Vielen Dank für den Hinweis.
Gruß Jonatan
AW: before save
29.08.2008 11:24:57
Jürgen
Hallo Jonatan,
aber dafür kannst Du doch die Datei als Vorlage speichern - "Datei - Speichern unter" und als Dateityp "Mustervorlage (*.xlt)". Anschließend kannst Du über "Datei - Neu..." eine neue Datei auf Basis der Mustervorlage anlegen - das Muster bleibt dann unverändert.
Gruß, Jürgen
AW: before save
29.08.2008 11:38:00
Jonatan
cool.
die funktion kannte ich noch nicht. sehr schön. DANKE
Gruß Jonatan
Anzeige
AW: before save
29.08.2008 12:08:00
Jogy
Du kannst auch einfach die Endung der vorhandenen Datei von .xls in .xlt umbenennen.
Übrigens muss man nicht über Datei - Neu gehen, sondern kann einfach auch im Explorer auf die *.xlt doppelklicken.
Man darf nur nicht Datei - Öffnen nehmen.
Gruss, Jogy
AW: before save
29.08.2008 11:04:00
Jonatan
noch ne Frage
was bedeutet eigentich dieses "SaveAsUI" ?
GRuß Jonatan
AW: before save
29.08.2008 12:06:00
Jogy
Das zeigt an, ob anschließend die Datei direkt gespeichert wird oder ob der "Speichern unter"-Dialog kommt - das hättest Du auch leicht über die VBA-Hilfe herausgefunden.
Außerdem funktioniert der Code oben nicht, denn wie soll die Datei unter einem anderen Namen gespeichert werden, wenn das Speichern unterbunden wird, solange sie den alten Namen hat?
Mal als Beispiel wie es funktioniert:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Const meineDatei = "c:\temp\test.xls"
Static daTei As String
On Error GoTo saveErr
If SaveAsUI = False Then
If daTei = "" Then
daTei = ThisWorkbook.Path & "\" & ThisWorkbook.Name
End If
If UCase(daTei) = UCase(meineDatei) Then
Cancel = True
End If
Else
Cancel = True
daTei = Application.GetSaveAsFilename
If daTei  "" Then
ThisWorkbook.SaveAs daTei
End If
End If
saveErr:
daTei = ""
On Error GoTo 0
End Sub


Die Variable daTei ist statisch deklariert, da durch das ThisWorkbook.SaveAs die Prozedur nochmals aufgerufen wird, allerdings mit SaveAsUI = False. Das könnte man nun auf alle möglichen Arten abfangen, auf diese Art wird kann dann aber die eh schon vorhandene Dateinamenprüfung genutzt werden.
Die Fehlerbehandlung ist übrigens drin, damit die Variable daTei auch sicher zurückgesetzt wird.
Gruss, Jogy

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige