Speichern unter mit Dateiname aus Zelle
Schritt-für-Schritt-Anleitung
Um eine Excel-Datei mit einem spezifischen Dateinamen, der aus einer Zelle übernommen wird, zu speichern, kannst Du das folgende Makro verwenden. In diesem Beispiel wird der Dateiname aus der Zelle A15 entnommen. Achte darauf, dass Du Excel 2013 oder eine neuere Version verwendest.
Sub SpeichernUnterMitDateinameAusZelle()
Dim dateiname As String
dateiname = "C:\blabla\Rechnungen für Kunden\" & Range("A15").Value & ".pdf"
If Dir(dateiname) = "" Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=dateiname, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Else
MsgBox "Dateiname bzw. Rechnungsnummer bereits vorhanden!"
End If
End Sub
Füge diesen Code in ein Modul in Deinem VBA-Editor ein. Stelle sicher, dass der Pfad und der Dateiname korrekt sind.
Häufige Fehler und Lösungen
Fehler: "Dateiname bereits vorhanden!"
- Lösung: Das Makro überprüft, ob die Datei bereits existiert. Wenn ja, wird eine entsprechende Meldung angezeigt. Du kannst den
MsgBox
-Befehl anpassen oder eine Abfrage hinzufügen, die den Benutzer fragt, ob die Datei überschrieben werden soll.
Fehler: "Laufzeitfehler 52"
- Ursache: Der angegebene Pfad existiert nicht oder ist falsch.
- Lösung: Überprüfe den Pfad und stelle sicher, dass er korrekt ist und die nötigen Berechtigungen vorhanden sind.
Alternative Methoden
Eine alternative Methode ist die Verwendung des Application.GetSaveAsFilename
-Dialogs, um dem Benutzer die Möglichkeit zu geben, einen Speicherort auszuwählen und den Dateinamen einzugeben. So kannst Du das Makro umgestalten:
Sub SpeichernUnterMitDialog()
Dim dateiname As Variant
dateiname = Application.GetSaveAsFilename(InitialFileName:=Range("A15").Value & ".pdf", _
FileFilter:="PDF Files (*.pdf), *.pdf")
If dateiname <> False Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=dateiname, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
End Sub
Praktische Beispiele
-
Speichern einer Rechnung mit Kundennamen: Wenn in Zelle A15 der Kunde "Müller" steht, wird die Datei als "Müller.pdf" im angegebenen Ordner gespeichert.
-
Automatische Generierung von Rechnungsnummern: Du kannst in Zelle A15 eine Formel verwenden, die automatisch eine Rechnungsnummer generiert, die dann als Dateiname dient.
Tipps für Profis
-
Verwendung von Dateipfaden aus Zellen: Du kannst den Pfad für das Speichern ebenfalls aus einer Zelle übernehmen. Setze einfach den Pfad in eine andere Zelle (z.B. B15) und ändere den Code entsprechend:
dateiname = Range("B15").Value & "\" & Range("A15").Value & ".pdf"
-
Berechtigungen prüfen: Stelle sicher, dass Du die nötigen Berechtigungen für das Speichern im gewählten Verzeichnis hast.
FAQ: Häufige Fragen
1. Wie kann ich den Speicherort für die Datei ändern?
Du kannst den Pfad im Code anpassen, indem Du den Pfad in eine Zelle schreibst und den Code entsprechend änderst.
2. Was passiert, wenn der Dateiname ungültige Zeichen enthält?
Das Makro wird einen Fehler ausgeben. Stelle sicher, dass der eingegebene Dateiname keine ungültigen Zeichen wie \ / : * ? " < > | enthält.