Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dateiname aus Zellen speichern unter

Dateiname aus Zellen speichern unter
07.04.2015 09:27:31
Marc
Hallo zusammen,
ich habe mir aus dem Internet ein bisschen was zusammenkopiert um mir einen Dateinamen zusammenzuspeichern, der aus verschiedenen Zellen zusammengesetzt wird:
Sub Speichern_unter()
Dim Datei As String
Dim Verzeichnis As String
Dim SaveDummy As Variant
Verzeichnis = "C:\temp\" 'Verzeichnis-Vorschlag
Datei = Range("B5") & "_" & Range("D5") & "_" & Range("B7") & Format(Date, "_dd_mm_yy") & ". _
xlsx" 'Datei-Vorschlag
SaveDummy = SpeichernUnter(Verzeichnis & Datei)
If SaveDummy  False Then ActiveWorkbook.SaveAs SaveDummy 'Es wurde im Dialog auf Speichern  _
gedrückt
End Sub
Function SpeichernUnter(VorgabeName As String) As Variant
SpeichernUnter = Application.GetSaveAsFilename(InitialFileName:=VorgabeName, Filefilter:="Excel  _
Dateien (*.xlsx),*.xlsx*", _
FilterIndex:=1, Title:="Speichern unter...", ButtonText:="speichern")
End Function
Wenn ich dieses Makro nun ausführe und auf speichern klicke, bleibt er mir auf
If SaveDummy false Then....
mit einem Fehler stehen...
Wenn ich das auskommentiere und auf speichern klicke, dann speichert er nix, bleibt aber auch nicht stehen...
Ich gestehe, dass ich das Makro nicht so recht verstehe :(
Kann mir jemand weiterhelfen?
Danke
Marc

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname aus Zellen speichern unter
07.04.2015 13:21:11
fcs
Hallo marc,
du musst dem SaveAs Befehl noch das Dateiformat für die Namens erweiterung xlsx mitgeben, sonst kann es zu Fehleren kommen, wenn z.B. die aktive Datei xlsm-Format hat.
Als Alternative könntest du auch dierekt den Speichern-unter-Dialog aufrufen.
Gruß
Franz
Sub Speichern_unter()
Dim Datei As String
Dim Verzeichnis As String
Dim SaveDummy As Variant
Verzeichnis = "C:\temp\" 'Verzeichnis-Vorschlag
Datei = Range("B5") & "_" & Range("D5") & "_" & Range("B7") _
& Format(Date, "_dd_mm_yy") & ".xlsx" 'Datei-Vorschlag
SaveDummy = SpeichernUnter(Verzeichnis & Datei)
If SaveDummy  False Then ActiveWorkbook.SaveAs SaveDummy, FileFormat:=51 'Es _
wurde im Dialog auf Speichern gedrückt
End Sub
Function SpeichernUnter(VorgabeName As String) As Variant
SpeichernUnter = Application.GetSaveAsFilename(InitialFileName:=VorgabeName, _
Filefilter:="Excel Dateien (*.xlsx),*.xlsx", _
FilterIndex:=1, Title:="Speichern unter...", ButtonText:="speichern")
End Function

Alternative
Sub Speichern_unter_neu()
Dim Datei As String
Dim Verzeichnis As String
Verzeichnis = "C:\temp\" 'Verzeichnis-Vorschlag
Datei = Range("B5") & "_" & Range("D5") & "_" & Range("B7") _
& Format(Date, "_dd_mm_yy") ' & ".xlsx" 'Datei-Vorschlag
VBA.ChDrive Verzeichnis
If Application.Dialogs(xlDialogSaveAs).Show(Verzeichnis & Datei, 51) = False Then
MsgBox "Test - nichtgespeichert"
Else
MsgBox "Test - gespeichert"
End If
End Sub

Anzeige
Danke Franz, klappt!!
07.04.2015 13:52:18
Marc
Danke Franz, klappt!!

AW: Dateiname aus Zellen speichern unter
07.04.2015 13:25:08
Rudi
Hallo,
if savedummy "Falsch" Then
Gruß
Rudi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Dateiname aus Zellen speichern unter


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und gehe zu den Zellen, deren Inhalte du für den Dateinamen verwenden möchtest, z.B. B5, D5 und B7.

  2. Öffne den VBA-Editor mit ALT + F11.

  3. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (dein Dokument)“ > Einfügen > Modul.

  4. Kopiere den folgenden Code ein:

    Sub Speichern_unter()
        Dim Datei As String
        Dim Verzeichnis As String
        Dim SaveDummy As Variant
        Verzeichnis = "C:\temp\" 'Verzeichnis-Vorschlag
        Datei = Range("B5") & "_" & Range("D5") & "_" & Range("B7") & Format(Date, "_dd_mm_yy") & ".xlsx" 'Datei-Vorschlag
        SaveDummy = SpeichernUnter(Verzeichnis & Datei)
        If SaveDummy <> False Then ActiveWorkbook.SaveAs SaveDummy, FileFormat:=51 'Es wurde im Dialog auf Speichern gedrückt
    End Sub
    
    Function SpeichernUnter(VorgabeName As String) As Variant
        SpeichernUnter = Application.GetSaveAsFilename(InitialFileName:=VorgabeName, Filefilter:="Excel Dateien (*.xlsx),*.xlsx", _
        FilterIndex:=1, Title:="Speichern unter...", ButtonText:="speichern")
    End Function
  5. Speichere das Modul und schließe den VBA-Editor.

  6. Führe das Makro aus: Gehe zurück zu Excel und drücke ALT + F8, wähle „Speichern_unter“ und klicke auf „Ausführen“.


Häufige Fehler und Lösungen

  • Fehler: „Speichern unter“ bleibt stehen

    • Stelle sicher, dass die If SaveDummy <> False Bedingung korrekt ist. Der Vergleich sollte <> (ungleich) sein, nicht !=.
  • Fehler beim Speichern

    • Achte darauf, dass das Dateiformat korrekt angegeben ist. Wenn deine aktive Datei im .xlsm-Format ist, musst du das Format in deinem SaveAs-Befehl anpassen.
  • Dialogfeld nicht erscheint

    • Überprüfe, ob die Funktion SpeichernUnter korrekt aufgerufen wird. Es muss ein gültiger Pfad und Dateiname übergeben werden.

Alternative Methoden

Eine alternative Methode, um einen Dateinamen aus Zellen zu generieren und zu speichern, ist die Verwendung des integrierten „Speichern unter“-Dialogs:

Sub Speichern_unter_neu()
    Dim Datei As String
    Dim Verzeichnis As String
    Verzeichnis = "C:\temp\" 'Verzeichnis-Vorschlag
    Datei = Range("B5") & "_" & Range("D5") & "_" & Range("B7") & Format(Date, "_dd_mm_yy") 'Datei-Vorschlag
    VBA.ChDrive Verzeichnis
    If Application.Dialogs(xlDialogSaveAs).Show(Verzeichnis & Datei, 51) = False Then
        MsgBox "Test - nicht gespeichert"
    Else
        MsgBox "Test - gespeichert"
    End If
End Sub

Diese Methode nutzt den Excel-Dialog und ermöglicht es dem Nutzer, den Speicherort und den Dateinamen manuell zu bestätigen.


Praktische Beispiele

  1. Dateiname aus mehreren Zellen generieren:

    • Stelle sicher, dass in Zelle B5 der Name, in D5 das Datum und in B7 eine Beschreibung steht, um einen vollständigen Dateinamen zu erstellen.
  2. Speichern unter einem spezifischen Pfad:

    • Ändere den Verzeichnis-Pfad in deinem Code, um die Datei an einem anderen Ort zu speichern, z.B.:
      Verzeichnis = "C:\Users\DeinBenutzername\Documents\"

Tipps für Profis

  • Nutze Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler abzufangen und zu behandeln.
  • Experimentiere mit Dateiformaten, um verschiedene Excel-Versionen zu unterstützen. Der FileFormat Parameter kann dabei helfen.
  • Berücksichtige die Benutzerfreundlichkeit, indem du informative Meldungen hinzufügst, die den Nutzer über den Status des Speichervorgangs informieren.

FAQ: Häufige Fragen

1. Wie kann ich den Dateinamen aus einer Zelle generieren?
Du kannst den Inhalt der Zelle direkt in deinen VBA-Code einfügen, wie im Beispiel oben gezeigt.

2. Funktioniert das Makro in allen Excel-Versionen?
Das Beispiel sollte in den meisten Versionen von Excel 2010 und höher funktionieren, jedoch kann es Unterschiede in den Dateiformaten geben.

3. Was mache ich, wenn der „Speichern unter“-Dialog nicht erscheint?
Überprüfe die Parameter in der SpeichernUnter-Funktion und stelle sicher, dass alle Variablen korrekt definiert 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