Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

makro starten

Betrifft: makro starten von: caro
Geschrieben am: 11.11.2014 11:17:21

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

  

Betrifft: AW: makro starten von: yummi
Geschrieben am: 11.11.2014 11:22:59

Hallo Caro,

das kannst du im Workbook mit Workbook_BeforeSave abfangen.

Gruß
yummi


  

Betrifft: AW: makro starten von: caro
Geschrieben am: 11.11.2014 11:28:32

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



  

Betrifft: AW: makro starten von: yummi
Geschrieben am: 11.11.2014 11:32:04

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


  

Betrifft: AW: makro starten von: ChrisL
Geschrieben am: 11.11.2014 11:27:59

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


  

Betrifft: AW: makro starten von: caro
Geschrieben am: 12.11.2014 09:12:26

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



  

Betrifft: AW: makro starten von: ChrisL
Geschrieben am: 12.11.2014 09:32:09

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


  

Betrifft: AW: makro starten von: caro
Geschrieben am: 12.11.2014 10:01:09

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!?


  

Betrifft: AW: makro starten von: ChrisL
Geschrieben am: 12.11.2014 11:11:19

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


  

Betrifft: AW: makro starten von: Caro
Geschrieben am: 12.11.2014 14:57:32

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


  

Betrifft: AW: makro starten von: ChrisL
Geschrieben am: 12.11.2014 15:43:48

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


 

Beiträge aus den Excel-Beispielen zum Thema "makro starten"