Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA aktueller Monat

VBA aktueller Monat
16.09.2014 16:05:18
Katharina
Hallo, ich möchte, dass mir, wenn ich eine Datei Speicher gleich der aktuelle Monat als Dateiname steht. Hat da jemand zufällig eine Idee?
LG

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA aktueller Monat
16.09.2014 16:09:28
ChrisL
Hi Katharina
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

Alt+F11 drücken, links Doppelklick auf DieseArbeitsmappe, Code reinkopieren.
cu
Chris

Anzeige
AW: VBA aktueller Monat
16.09.2014 16:44:20
fcs
Hallo Katharina,
du könntest dir in deiner persönlichen Makro-Arbeitsmappe oder auch in der Datei, die du speichern möchtest, ein entsprechendes SaveAs-Makro anlegen.
Gruß
Franz
'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

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA: Aktueller Monat als Dateiname verwenden


Schritt-für-Schritt-Anleitung

Um den aktuellen Monat als Dateinamen in Excel zu verwenden, kannst du ein VBA-Makro erstellen. Folge diesen Schritten:

  1. Öffne Excel und drücke Alt + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Suche im Projekt-Explorer links nach "DieseArbeitsmappe" und doppelklicke darauf.

  3. 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
  4. Schließe den VBA-Editor und speichere deine Arbeitsmappe.

  5. Jedes Mal, wenn du die Datei speicherst, wird der aktuelle Monat als Dateiname vorgeschlagen.


Häufige Fehler und Lösungen

  • Fehler: Der Dateiname wird nicht korrekt angezeigt.

    • Lösung: Überprüfe, ob der Code korrekt eingefügt wurde und keine Syntaxfehler vorhanden sind.
  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass Makros in deiner Excel-Anwendung aktiviert sind.

Alternative Methoden

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.


Praktische Beispiele

  1. Beispiel für den aktuellen Monat: Wenn du das Makro ausführst und es ist zum Beispiel April, wird der Dateiname "April" vorgeschlagen.
  2. Speichern in verschiedenen Formaten: Die Anpassung des FilterIndex ermöglicht es dir, in verschiedenen Excel-Formaten zu speichern, wie z.B. .xlsx oder .xlsm.

Tipps für Profis

  • 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.


FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige