Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1388to1392
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

makro starten

makro starten
11.11.2014 11:17:21
caro
Liebe Excel Profis
Wie kann ich in Excel steuern, dass "speichern unter" mit Dateipfad-Vorgabe aktiviert wird, sobald der Anwender (falls an der Datei Änderungen vorgenommen wurden) die Datei schliessen oder speichern (Datei darf keinesfalls überschrieben werden!)will?
Danke für einen guten Vorschlag und Gruss
Caro

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

Betreff
Datum
Anwender
Anzeige
AW: makro starten
11.11.2014 11:22:59
yummi
Hallo Caro,
das kannst du im Workbook mit Workbook_BeforeSave abfangen.
Gruß
yummi

AW: makro starten
11.11.2014 11:28:32
caro
Hallo Yummi
danke für die Antwort. wo und wie genau muss das im Code platziert werden?
Sub Speichern_unter_aufrufen_mit_Pfadangabe()
Dim Dateiname As String
'Dateiname basteln - Jahr Monat Tag
Dateiname = Format(Date, "Notenberechnung-yyyy-mm-dd")
'Dialog "Speichern unter" aufrufen
'Pfad und Dateinamen vorgeben
Application.Dialogs(xlDialogSaveAs).Show "I:\test" & Dateiname
End Sub

AW: makro starten
11.11.2014 11:32:04
yummi
Hallo Caro,
im VBA Editor auf Arbeitsmappe doppelklicken, dann von Allgemein auf Worksheet umstellen und rechts BeforeSave auswählen. Das erzeugt dir den Funktionsrumpf, in den du dein Code packen kannst.
Gruß
yummi

Anzeige
AW: makro starten
11.11.2014 11:27:59
ChrisL
Hi Caro
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Application.EnableEvents = False
Cancel = True
If SaveAsUI Then
Application.Dialogs(xlDialogSaveAs).Show ("Text"), xlOpenXMLWorkbookMacroEnabled
Else
ThisWorkbook.Save
End If
Application.EnableEvents = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Me.Saved = False Then
Select Case MsgBox("Sollen Ihre Änderungen in '" & ThisWorkbook.Name & "' gespeichert  _
werden?", vbYesNoCancel + vbExclamation)
Case vbYes
On Error Resume Next
Application.EnableEvents = False
If LCase(Right(ThisWorkbook.Name, 4))  "xlsm" Then
Application.Dialogs(xlDialogSaveAs).Show ("Text"), xlOpenXMLWorkbookMacroEnabled
Else
ThisWorkbook.Save
End If
Application.EnableEvents = True
Case vbNo
Me.Saved = True
Case vbCancel
Cancel = True
End Select
End If
End Sub

Alt+F11, links Doppelklick auf "DieseArbeitsmappe", Code einfügen.
cu
Chris

Anzeige
AW: makro starten
12.11.2014 09:12:26
caro
Hallo ChrisL
Vielen DAnk für die Antwort. Ich habe die Codes eingesetzt, nun kommt eine Syntax-Fehlermeldung. Das unten Fettgedruckte wird rot angezeigt... kannst du mir hier nochmal weiterhelfen?
Vielen DAnk!
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Me.Saved = False Then
Select Case MsgBox("Sollen Ihre Änderungen in '" & ThisWorkbook.Name & "' gespeichert  _
werden?", vbYesNoCancel + vbExclamation)
    Case vbYes
On Error Resume Next
Application.EnableEvents = False
If LCase(Right(ThisWorkbook.Name, 4))  "xlsm" Then
Application.Dialogs(xlDialogSaveAs).Show ("Text"), xlOpenXMLWorkbookMacroEnabled
Else
ThisWorkbook.Save
End If
Application.EnableEvents = True
Case vbNo
Me.Saved = True
Case vbCancel
Cancel = True
End Select
End If
End Sub

Anzeige
AW: makro starten
12.11.2014 09:32:09
ChrisL
Hi
Probier mal so... (Zeilenumbruch-Problem)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Me.Saved = False Then
Select Case MsgBox("Sollen Ihre Änderungen in '" & ThisWorkbook.Name & _
"' gespeichert werden?", vbYesNoCancel + vbExclamation)
Case vbYes
On Error Resume Next
Application.EnableEvents = False
If LCase(Right(ThisWorkbook.Name, 4))  "xlsm" Then
Application.Dialogs(xlDialogSaveAs).Show ("Text"), xlOpenXMLWorkbookMacroEnabled
Else
ThisWorkbook.Save
End If
Application.EnableEvents = True
Case vbNo
Me.Saved = True
Case vbCancel
Cancel = True
End Select
End If
End Sub

cu
Chris

Anzeige
AW: makro starten
12.11.2014 10:01:09
caro
Vielen Dank Chris, das klappt jetzt! Wenn ich die Datei schliessen will, kommt die Frage, ob ich die Datei speichern will. Nun hätte ich aber gerne, dass nur "Speichern unter", vorzugsweise als normale xls Datei ohne Makro möglich ist, so dass niemand meine xlm Datei überschreiben kann (ausser mir bei Bedarf)...
Mein Ziel ist es, eine Excel-Vorlage zu haben analog einer WORD-Vorlage(.../Dateiname.dot), die jeder aufrufen kann, daran arbeiten, ausfüllen etc., die aber beim Speichern nur als neue Datei (.../Dateiname.doc) gespeichert werden kann.
Vielleicht gibt es dafür ja auch eine einfachere Variante, als VBA-Programmierung!?

Anzeige
AW: makro starten
12.11.2014 11:11:19
ChrisL
Hi Caro
Das kannst Du mit Excel genau gleich wie in Word machen d.h. als Vorlage abspeichern. Die Endung lautet dann *.xltm.
cu
Chris

AW: makro starten
12.11.2014 14:57:32
Caro
Hallo Chris
Das hatte ich probiert, leider war die Datei mit der Erweiterung *.xltm dann am Speicherort auf dem Laufwerksordner aber nicht sichtbar (?!) Zwar stand mir das File beim Öffnen von Excel als benutzerdefinierte Vorlage zur Verfügung, das war aber nicht das, was ich eigentlich wollte (Zugriff für alle Mitarbeiter). Nun habe ich es zuhause (Excel 2010) nochmals versucht und siehe da, es funktioniert bestens. Könnte es an einer mir unbekannten Einstellung an meinem Arbeitsplatz-PC liegen,dass xltm-Dateien dort im Explorer nicht aufgelistet werden?
Das Speichern-unter-Problem jedenfalls ist hiermit für mich gelöst. Vielen Dank für die Hilfe!
Grüsse
Caro

Anzeige
AW: makro starten
12.11.2014 15:43:48
ChrisL
Hi Caro
Danke für Dein Feedback. Keine Ahnung woran es gelegen hat, vielleicht unbewusst an einem anderen Ort gespeichert (bei Wechsel auf Vorlage wird mir immer ein anderer Pfad vorgetragen und klick mich dann manuell durch die Ordner). Aber Hauptsache es funktioniert jetzt ;)
lg
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige