LG
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 (Format(Date, "MMMM")), _
xlOpenXMLWorkbookMacroEnabled
Else
ThisWorkbook.Save
End If
Application.EnableEvents = True
End Sub
'Erstellt unter Excel 2010
Sub SaveAs_Monat()
Dim strName As String, varFilterIndex
'Filterindex des Speicherformats entsprechend Dateiformat der aktiven Datei ggf. anpassen
Select Case ActiveWorkbook.FileFormat
Case 51 'Exceldatei ohne Makros
varFilterIndex = 1 'xlsx
Case 52 'Datei mit Makros
varFilterIndex = 2 'xlsm
Case 56 'xls-Excel 8-Datei
varFilterIndex = 4
Case -4143 'Arbeitsblatt normal -xls-Datei
varFilterIndex = 4
Case Else
varFilterIndex = 1
End Select
strName = Format(Date, "MMMM") 'Format ggf. anpassen für andere
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = strName
.FilterIndex = 1 '1 = Standardeinstellung (xlsx) 2 = mit Makros (xlsm)
.Show
.Execute
End With
End Sub
Um den aktuellen Monat als Dateinamen in Excel zu verwenden, kannst du ein VBA-Makro erstellen. Folge diesen Schritten:
Öffne Excel und drücke Alt + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
Suche im Projekt-Explorer links nach "DieseArbeitsmappe" und doppelklicke darauf.
Füge den folgenden Code in das Codefenster ein:
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 (Format(Date, "MMMM")), _
xlOpenXMLWorkbookMacroEnabled
Else
ThisWorkbook.Save
End If
Application.EnableEvents = True
End Sub
Schließe den VBA-Editor und speichere deine Arbeitsmappe.
Jedes Mal, wenn du die Datei speicherst, wird der aktuelle Monat als Dateiname vorgeschlagen.
Fehler: Der Dateiname wird nicht korrekt angezeigt.
Fehler: Das Makro wird nicht ausgeführt.
Du kannst auch ein Makro in deiner persönlichen Makro-Arbeitsmappe anlegen. Hier ist ein Beispiel:
Sub SaveAs_Monat()
Dim strName As String, varFilterIndex
'Filterindex des Speicherformats entsprechend Dateiformat der aktiven Datei ggf. anpassen
Select Case ActiveWorkbook.FileFormat
Case 51 'Exceldatei ohne Makros
varFilterIndex = 1 'xlsx
Case 52 'Datei mit Makros
varFilterIndex = 2 'xlsm
Case 56 'xls-Excel 8-Datei
varFilterIndex = 4
Case -4143 'Arbeitsblatt normal -xls-Datei
varFilterIndex = 4
Case Else
varFilterIndex = 1
End Select
strName = Format(Date, "MMMM") 'Format ggf. anpassen für andere
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = strName
.FilterIndex = 1 '1 = Standardeinstellung (xlsx) 2 = mit Makros (xlsm)
.Show
.Execute
End With
End Sub
Dieses Makro öffnet ein Dialogfeld und schlägt den aktuellen Monat als Dateinamen vor.
FilterIndex
ermöglicht es dir, in verschiedenen Excel-Formaten zu speichern, wie z.B. .xlsx
oder .xlsm
.VBA Monat aus Datum: Wenn du einen spezifischen Monat aus einem Datum extrahieren möchtest, kannst du die Funktion Month
verwenden. Beispiel:
Dim aktuellerMonat As Integer
aktuellerMonat = Month(Date) ' Liefert den aktuellen Monat als Zahl
Fehlerbehandlung: Füge immer On Error Resume Next
am Anfang deines Codes hinzu, um unerwartete Fehler elegant zu handhaben.
1. Wie kann ich den Monat in einem anderen Format speichern?
Du kannst das Format in der Format
-Funktion anpassen, z.B. Format(Date, "MM")
für den Monat als Zahl.
2. Funktioniert das Makro in allen Excel-Versionen? Das gegebene Makro wurde unter Excel 2010 getestet, sollte aber auch in neueren Versionen funktionieren. Achte darauf, dass Makros aktiviert sind.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen