ich versuche gerade folgenden VBA um ein Tabellenblatt als PDF Anhang als Email zu versenden. Leider habe ich dabei zwei Probleme:
1) Alle Spalten sollen auf ein Blatt. Die Länge ist egal wenn es zu viele Zeilen untereinander sind dann soll auf einer zweiten Seite gedruckt werden. Jedoch die Breite soll immer auf einem Blatt sein.
Dafür sollte FitToPagesWide = 1 & FitToPagesTall = False
--> Funktioniert nur nicht
2) Autofilter: Er druckt ausgeblendete Zeilen... Wie bekomme ich das weg. Er soll nur Zeilen drucken die sichtbar sind.
Hilfe wäre klasse.
freundliche Grüße Henry
Sub AlsPDFSpeichern()
Dim pdfName As String
Dim pdfOpenAfterPublish As Boolean
Dim olApp As Object
Rem Rückfragen, ob Datei nach dem Erstellen geöffnet werden soll
If MsgBox("Soll die PDF-Datei nach dem Erstellen angezeigt werden?", vbYesNo, "PDF anzeigen?") _
_
= vbYes Then pdfOpenAfterPublish = True
Rem Pfad und Name der PDF-Datei
pdfName = ThisWorkbook.Path & "\" & ThisWorkbook.Name & "_" & ActiveSheet.Name & ".pdf"
With Sheets("Weiterbelastung").PageSetup
.Zoom = False
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = False
End With
Rem PDF-Datei erstellen. Funktioniert nur in Excel 2007 oder höher, nicht in Excel 2003 oder ä _
_
lter
Sheets("GPR").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=IIf(pdfOpenAfterPublish, True, False)
Rem Email erstellen
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.TO = "XXX"
'.CC = Range("Z2").Value
.Subject = "Abrechnung" 'Betreffzeile
.htmlBody = "Abrechung"
.Attachments.Add pdfName
.Display
End With
End Sub
Vielen Dank
Gruss
Henry