Hallo,
klar gibt es auch dafuer eine Loesung. Ist aber nicht von mir. Habs im Netz gefunden, sonst haette es laenger gedauert :-P
Habs gleich mal in deinen Code eingebaut:
Public Sub Save_As_PDF()
Dim i As Integer, PDFindex As Integer
Dim strFilePDF As String
With Application.FileDialog(msoFileDialogSaveAs)
PDFindex = 0
For i = 1 To .Filters.Count
If InStr(VBA.UCase(.Filters(i).Description), "PDF") > 0 Then PDFindex = i
Next
.Title = "PDF"
'Speicherort-Abfrage und erzeugung des Dateinamens aus Feldern der Excel-Datei.
.InitialFileName = "C:\" & "Mustertext" & Space(1) & Range("Tabelle1!A1") & Space(1) & Range("Tabelle1!A2") & Space(1) & Format(Date, "YYYY-MM-DD")
.FilterIndex = PDFindex
If .Show Then
On Error GoTo Fehler
Dim strFilePDF As String
strFilePDF = .InitialFileName
'Hier wird eine PDF aus einem bestimmten Bereich eines bestimmten Tabellenblatt erzeugt.
Sheets("Tabelle2").Range("A1:G50").ExportAsFixedFormat Type:=xlTypePDF, Filename:=.SelectedItems(1), _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, Openafterpublish:=True
Fehler:
With Err
Select Case .Number
Case 0 'Alles OK
Case -2147018887
If MsgBox("Bitte erst im PDF-Viewer die Datei" & vbLf _
& strFilePDF & vbLf & "schließen!" & vbLf & vbLf _
& "Danach dann hier mit ""OK"" weiter", _
vbInformation + vbOKCancel, _
"PDF-Datei erstellen") = vbOK Then
Resume
End If
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End If
End With
End Sub
Probier mal und lass mich wissen, obs klappt.
Gruss Torsten
|