Live-Forum - Die aktuellen Beiträge
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
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige