Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Dateiname aus Zelle erstellen

Forumthread: VBA: Dateiname aus Zelle erstellen

VBA: Dateiname aus Zelle erstellen
30.09.2015 21:48:19
Niko
Guten Abend,
ich habe mir in Excel 2010 ein Makro erstellt, das mir den Dateinamen aus einer bestimmten Zelle generiert:
Sub SaveAs()
savedFile = Application.GetSaveAsFilename(InitialFileName:="N:\A\B\C\" & [C1050], fileFilter:=" _
Excel-Arbeitsmappe, *.xlsm")
If savedFile  "Falsch" Then ActiveWorkbook.SaveAs savedFile
End Sub
Das klappt auch sehr gut. Leider funktioniert das Makro mit Excel 2013 überhaupt nicht. Wo ist der Fehler?
Vielen Dank!
Niko

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Warum über GetSaveAsFilename?
01.10.2015 14:12:45
Michael
Hallo Niko!
Hat es einen Grund, warum Du das über GetSaveAsFilename machst? Du kannst Dir den gewünschten Dateinamen ja gleich in einer Variablen zusammenfassen und dann direkt an ThisWorkbook.SaveAs übergeben; dort ist dann auch gleich der Ort um das gewünschte Format anzugeben (.xlsm = Arbeitsmappe mit Makros = Typ 52).
Sub SpeichernAls()
Dim Dname As String
Dname = "N:\A\B\C\" & Worksheets("Tabelle1").Range("C1050").Value
ThisWorkbook.SaveAs Filename:=Dname, FileFormat:=52
End Sub
Tabellenblattname musst Du ggf. anpassen. Was Du mit dem If savedFile "Falsch" bezweckst ist mir nicht klar; da müsstest Du noch genauere Infos geben.
Meine Ausführungen beziehen sich zwar bei mir auf Office 2010, aber ich glaube stark, dass dies in 2013 auch so funktioniert.
LG
Michael

Anzeige
AW: VBA: Dateiname aus Zelle erstellen
01.10.2015 14:23:33
Daniel
Hi
seit Excel 2007 gibt es keinen "Standard"-Excel-Dateityp mehr, welchen die SaveAs-Funktion als Default-Wert einsetzen könnte, sondern vier verschiedene (xlsx, xlsm, xlsb, xls).
daher ist der Parameter FileFormat nicht mehr optional, sondern man muss ihn immer angeben.
If savedFile  "Falsch" Then ActiveWorkbook.SaveAs savedFile, fileformat:=xxx
anstelle xxx bitte den passenden Wert für xlsm-dateien einfügen, den kannst du in der Hilfe nachlesen oder mit Hilfe des Recorders rausfinden, ich kenn den auch nicht auswendig und suchen kannst du selbst..
ausserdem sollte man im Dateinamen die Dateierweiterung weglassen (das ".xlsm" am Ende)
Excel fügt die Dateierweiterung automatisch passend zum gewählten Dateiformat hinzu.
Die Dateierweiterung im Dateinamen hat keinen Einfluss auf den verwendeten Dateityp, dieser wird allein über das FileFormat bestimmt.
Gruß Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Dateinamen aus einer Zelle in Excel VBA erstellen


Schritt-für-Schritt-Anleitung

Um einen Dateinamen aus einer Zelle in Excel VBA zu erstellen, gehe folgendermaßen vor:

  1. Öffne Excel und erstelle ein neues Makro.

  2. Kopiere den folgenden VBA-Code in das VBA-Editor-Fenster:

    Sub SpeichernAls()
       Dim Dname As String
       Dname = "N:\A\B\C\" & Worksheets("Tabelle1").Range("C1050").Value
       ThisWorkbook.SaveAs Filename:=Dname, FileFormat:=52
    End Sub
  3. Passe den Tabellenblattnamen ("Tabelle1") und die Zelle ("C1050") entsprechend deiner Datei an.

  4. Führe das Makro aus, um die Arbeitsmappe mit dem Dateinamen aus der angegebenen Zelle zu speichern.


Häufige Fehler und Lösungen

  • Fehler beim Speichern: Wenn das Makro nicht funktioniert, überprüfe, ob der Pfad "N:\A\B\C\" korrekt ist und ob du die nötigen Berechtigungen hast.

  • FileFormat nicht angegeben: Achte darauf, dass du das FileFormat-Argument angibst, da dies ab Excel 2007 erforderlich ist. Für .xlsm-Dateien ist der Wert 52.

    ThisWorkbook.SaveAs Filename:=Dname, FileFormat:=52
  • Ungültiger Dateiname: Stelle sicher, dass der Inhalt der Zelle "C1050" einen gültigen Dateinamen darstellt, ohne unerlaubte Zeichen.


Alternative Methoden

Wenn du eine andere Methode nutzen möchtest, um den Dateinamen aus einer Zelle zu generieren, kannst du auch den folgenden Ansatz verwenden. Dieser nutzt die GetSaveAsFilename-Methode:

Sub SaveAs()
    Dim savedFile As Variant
    savedFile = Application.GetSaveAsFilename(InitialFileName:="N:\A\B\C\" & Worksheets("Tabelle1").Range("C1050").Value, fileFilter:="Excel-Arbeitsmappe, *.xlsm")
    If savedFile <> False Then ActiveWorkbook.SaveAs savedFile, FileFormat:=52
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du Excel VBA verwenden kannst, um Dateinamen aus Zellen zu generieren:

  1. Initialen aus einem Namen: Wenn du die Initialen aus einem Namen in Zelle "A1" extrahieren und als Dateinamen verwenden möchtest:

    Sub InitialenSpeichern()
       Dim Name As String
       Dim Initialen As String
       Name = Worksheets("Tabelle1").Range("A1").Value
       Initialen = Left(Name, 1) & Mid(Name, InStr(Name, " ") + 1, 1)
       ThisWorkbook.SaveAs Filename:="N:\A\B\C\" & Initialen & ".xlsm", FileFormat:=52
    End Sub
  2. Dynamische Dateinamen: Du kannst auch das aktuelle Datum in den Dateinamen einfügen:

    Sub SpeichernMitDatum()
       Dim Dname As String
       Dname = "N:\A\B\C\" & Worksheets("Tabelle1").Range("C1050").Value & "_" & Format(Date, "YYYYMMDD") & ".xlsm"
       ThisWorkbook.SaveAs Filename:=Dname, FileFormat:=52
    End Sub

Tipps für Profis

  • Verwende Konstanten: Definiere Konstanten für oft verwendete Dateipfade, um deinen Code lesbarer zu machen.

    Const FilePath As String = "N:\A\B\C\"
  • Fehlerbehandlung: Implementiere Fehlerbehandlung, um den Code robuster zu machen. Zum Beispiel:

    On Error Resume Next
    ThisWorkbook.SaveAs Filename:=Dname, FileFormat:=52
    If Err.Number <> 0 Then MsgBox "Fehler beim Speichern: " & Err.Description
    On Error GoTo 0

FAQ: Häufige Fragen

1. Warum sollte ich GetSaveAsFilename verwenden?
GetSaveAsFilename ermöglicht es dem Benutzer, den Speicherort und den Dateinamen auszuwählen, bevor die Datei gespeichert wird. Dies ist nützlich, wenn du den Speicherort nicht im Voraus festlegen möchtest.

2. Was mache ich, wenn mein Makro in Excel 2013 nicht funktioniert?
Überprüfe, ob alle erforderlichen Parameter, insbesondere FileFormat, korrekt angegeben sind. Stelle sicher, dass der Code auch auf die richtige Excel-Version abgestimmt ist, da sich die Anforderungen in verschiedenen Versionen ändern können.

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