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

Tabelle als pdf abspeichern mit name aus Zelle

Forumthread: Tabelle als pdf abspeichern mit name aus Zelle

Tabelle als pdf abspeichern mit name aus Zelle
02.08.2024 11:44:51
Thanh
Hallo Zusammen

ich habe folgendes Problem, ich möchte via macro ein Formular abspeichern und in ein PDF umwandel, Die Dateiname nimmt es aus zwei Zellen. Soweit klappt es auch, nur wenn in der eine Zelle ein Sonderzeichen ist das von Windows nicht erlaubt ist als Dateiname dann kann er das Macro nicht ausführen.
Mein Code sieht so aus:
Sub PDF_Speichern_1()
Const DateiPfad = "C:\Rechnungen\"
Dim DateiName As String
DateiName = DateiPfad & Range("W10") & Range("AB18") & ".pdf" ' Kunde + Rechnungsnr
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
DateiName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False

End Sub

Ist es möglich dass so einzustellen dass wenn ein Sonderzeichen vorhanden ist, dies einfach weggelassen wird beim abspeichern der Datei?

Für eure Hilfe bedanke ich mich recht herzlich.
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle als pdf abspeichern mit name aus Zelle
02.08.2024 12:44:37
Thanh
Hallo Jochen

Sorry wenn ich da nachfrage, aber wie bau ich dass in meinem code ein, leider habe ich da zuwenig Erfahrung.
Wäre schön wenn du mir da weiterhelfen könntest.

LG

Thanh
AW: Tabelle als pdf abspeichern mit name aus Zelle
02.08.2024 14:42:45
JoWE
Hallo Nochmal,

so:


Option Explicit

Sub PDF_Speichern_1()
Const DateiPfad = "C:\Rechnungen\" '"C:\temp\"
Dim DateiName As String
DateiName = Range("W10") & Range("AB18") & ".pdf" ' Kunde + Rechnungsnr
DateiName = DateiPfad & CleanFilename(DateiName)
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
DateiName, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End Sub

Public Function CleanFilename(ByVal sFilename As String, _
Optional ByVal sChar As String = "") As String
Dim oRegExp As RegExp
Set oRegExp = New RegExp
With oRegExp
.IgnoreCase = True
.Global = True
.MultiLine = True
.Pattern = "[\\/:?%*^"">|]"
CleanFilename = .Replace(sFilename, sChar)
End With
Set oRegExp = Nothing
End Function

Gruß
Jochen
Anzeige
AW: Tabelle als pdf abspeichern mit name aus Zelle
02.08.2024 12:40:57
UweD
Hallo

so?

Sub PDF_Speichern_1()

Const DateiPfad = "C:\Rechnungen\"
Dim DateiName As String, Tw10 As String, Tab18 As String
Tw10 = Sonderz(Range("TW10"))
Tab18 = Sonderz(Range("TAB18"))

DateiName = DateiPfad & Tw10 & Tab18 & ".pdf" ' Kunde + Rechnungsnr
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
DateiName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False

End Sub

Function Sonderz(strText As String)
Dim strNa, i As Integer
strNa = Split("# & "" { } | / \ ~ % > : ? * ", " ") 'nicht erlaubte Zeichen, getrennt durch Leerzeichen

For i = LBound(strNa) To UBound(strNa)
strText = Replace(strText, strNa(i), "")
Next
Sonderz = strText
End Function


LG UweD
Anzeige
AW: Tabelle als pdf abspeichern mit name aus Zelle
02.08.2024 13:04:42
Thanh
Hallo UweD

Danke für den Code,

Nun kommt immer ein fehler : Laufzeitfehler '-2147024773 (8007007b)': Das Dokumment wurde nicht abgespeichert.

Was Nun?

LG

Thanh
AW: Tabelle als pdf abspeichern mit name aus Zelle
02.08.2024 13:41:29
Thanh
Hallo Zusammen

Ich wollte mich nochmals herzlich bedanken, habe nun herausgefunden wo der fehler lag und jetzt klappt es auch, ich musse nur die Zellennamen korrigieren :-)

Vielen Dank für die schnelle hilfe.

LG und einen sonnigen Tag

Thanh
Anzeige
AW: Tabelle als pdf abspeichern mit name aus Zelle
02.08.2024 15:20:51
UweD
Hi

Habs gerade auch erst gemerkt.

muss ja so heißen:



Tw10 = Sonderz(Range("W10"))
Tab18 = Sonderz(Range("AB18"))


LG UweD

Forumthreads zu verwandten Themen

Anzeige