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

Forumthread: Speichern unter mit Dateiname aus Zelle

Speichern unter mit Dateiname aus Zelle
26.03.2008 13:59:03
Peter
Hallo an alle,
ich habe ein Datei die, nachdem sie ausgefüllt worden ist, in verschiedene Ordner abgespeichert werden muß. Die Lösung eines Problems hatte ich im Forum schnell gefunden, das sich der Speichern unter öffnet,

Sub SpeichernUnterDialogAufrufen()
Application.Dialogs(xlDialogSaveAs).Show
End Sub


Jetzt kann ich ja den Ordner Auswählen (der Speicherort hängt vom Thema ab) wo die Datei gespeichert werden soll.
Im Feld Dateityp: steht ja schon automatisch Microsoft Excel-Arbeitsmappe (*.xls).
Das Problem ist das Feld Dateiname:
Gibt es eine möglich, das wenn sich der Dialog Speichern unter öffnet, auch schon automatisch im Feld Dateiname: ein Dateiname steht.
Der Dateiname würde sich immer aus dem Wert ergeben, der im Blatt Tabelle2 K5 steht.
Dann bräuchte man nur noch den Ordner auswählen, auf „speichern klicken“ und die Sache wäre erledigt.
Gruß Peter

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern unter mit Dateiname aus Zelle
26.03.2008 14:02:30
Hajo_Zi
Hallo Peter,
ergänze die Zeile um Worksheets("Tabelle2").Range("K5")

AW: Speichern unter mit Dateiname aus Zelle
26.03.2008 14:22:00
Peter
Hallo Hajo,
sieht ja so auf Anhieb recht einfach aus ... aber ich mache wohl etwas falsch ...
wo genau so ich Worksheets("Tabelle2").Range("K5") einbauen ? ?
Ich habe es in der zweiten Zeil angehängt - es als neue dritte Zeile eingebaut ...
klappt nicht ... bekomme immer einen Laufzeitfehler ...
Gruß Peter

Anzeige
AW: Speichern unter mit Dateiname aus Zelle
26.03.2008 16:38:12
Hajo_Zi
Hallo Peter,
ich hatte geschrieben "ergänze Deiné Zeile" DAs hätte ich eigentlich so interpreitiert an Deine vorhandene Zeile hinten anhägen.
Gruß Hajo

AW: Speichern unter mit Dateiname aus Zelle
26.03.2008 14:06:00
Ramses
Hallo
Die VBA Online Hilfe ist besser als ihr Ruf
Suchbegriff: SaveAs
fileSaveName = Application.GetSaveAsFilename(Worksheets("Tabelle2").Range("K5"), fileFilter:="Text Files (*.txt), *.txt")
If fileSaveName False Then
MsgBox "Save as " & fileSaveName
End If
Gruss Rainer

Anzeige
Sorry: "txt" natürlich gegen "xls" ersetzen o.w.T.
26.03.2008 14:07:00
Ramses
...

Help...
26.03.2008 21:37:26
Bernd
Hallo zusammen,
ich habe versucht, das nachzubauen, bin aber kläglich gescheitert.
Ich habe den Code in ein Modul eingebettet. Es wird aber nicht tatsächlich gespeichert, sondern nur der Dateinamen im Dialog in "Speichern unter" eingestellt.

Sub SpeichernUnterDialogAufrufen()
Application.Dialogs(xlDialogSaveAs).Show
fileSaveName = Application.GetSaveAsFilename(Worksheets("Tabelle2").Range("B5"), fileFilter: _
="Text Files (*.xls), *.xls")
If fileSaveName  False Then
MsgBox "Save as " & fileSaveName
End If
End Sub


Hier als file:
https://www.herber.de/bbs/user/51053.xls
Wer kann/will denn den Code korrigieren?
Grüße und Danke vorab
Bernd

Anzeige
AW: Help...
26.03.2008 22:18:35
Ramses
Hallo
Sei mir nicht böse :-)
If fileSaveName False Then
MsgBox "Save as " & fileSaveName
End If
soll heissen
If fileSaveName False Then
Activeworkbook.SaveAs fileSaveName
End If
Gruss Rainer

@Rainer
27.03.2008 09:24:09
Bernd
Hi Rainer,
wie soll oder kann ich dir böse sein, wo du mir doch schon so manches Mal geholfen hast? :-))
Auch diesmal meinen Dank an Dich.
Grüße
Bernd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Speichern unter mit Dateiname aus Zelle


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub SpeichernUnterDialogAufrufen()
        Dim fileSaveName As Variant
        fileSaveName = Application.GetSaveAsFilename(Worksheets("Tabelle2").Range("K5").Value, _
            fileFilter:="Excel-Arbeitsmappe (*.xls), *.xls")
    
        If fileSaveName <> False Then
            ActiveWorkbook.SaveAs fileSaveName
        End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Du kannst das Makro nun ausführen, um den Dialog "Speichern unter" zu öffnen, wobei der Dateiname aus der Zelle K5 von Tabelle2 übernommen wird.


Häufige Fehler und Lösungen

  • Laufzeitfehler beim Ausführen des Makros:

    • Stelle sicher, dass der Zellbereich "Tabelle2!K5" existiert und einen gültigen Dateinamen enthält.
    • Überprüfe, ob die Schreibweise des Tabellennamens korrekt ist.
  • Der Dialog öffnet sich, aber der Dateiname wird nicht übernommen:

    • Achte darauf, dass der Code in der GetSaveAsFilename-Funktion korrekt ist und dass der Wert aus der Zelle tatsächlich ausgelesen wird.

Alternative Methoden

Eine einfache Möglichkeit, einen Dateinamen aus einer Zelle zu verwenden, ist die Nutzung der Funktion Speichern unter über das Menü:

  1. Klicke auf Datei > Speichern unter.
  2. Wähle den Speicherort und füge manuell den Namen aus der Zelle K5 hinzu.
  3. Diese Methode ist weniger automatisiert, kann aber für schnelle Speicheraktionen nützlich sein.

Praktische Beispiele

Angenommen, du hast in Zelle K5 den Wert "Bericht_2023", dann wird beim Ausführen des Makros der Dialog "Speichern unter" mit dem vorgeschlagenen Dateinamen "Bericht_2023.xls" geöffnet.

Ein weiteres Beispiel könnte sein, wenn du einen Bericht als PDF speichern möchtest. In diesem Fall kannst du den folgenden Code verwenden, um eine PDF-Datei zu speichern:

Sub SpeichernAlsPDF()
    Dim pdfName As String
    pdfName = Worksheets("Tabelle2").Range("K5").Value & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName
End Sub

Tipps für Profis

  • Verwende die On Error Resume Next-Anweisung, um Laufzeitfehler zu vermeiden und eine bessere Benutzererfahrung zu schaffen.
  • Du kannst den Code erweitern, um verschiedene Dateitypen zu unterstützen, wie z.B. PDF oder TXT, je nach Bedarf.
  • Teste deinen Code regelmäßig, um sicherzustellen, dass alle Funktionen wie gewünscht arbeiten.

FAQ: Häufige Fragen

1. Wie kann ich den Dateinamen in einer anderen Zelle speichern? Du kannst den Zellbereich im Code einfach anpassen, z.B. von K5 auf B5, um den Dateinamen von einer anderen Zelle zu beziehen.

2. Funktioniert dieser Code in Excel 2016? Ja, der Code sollte in Excel 2016 und neueren Versionen problemlos funktionieren. Achte darauf, dass die Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige