Clever-Excel-Forum

Normale Version: VBA Bennenung PDF und Seite drucken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Community,

ich habe folgenden VBA-Quellcode und möchte folgendes Umsetzten:

1. Der Name aus der PDF-Datei soll sich aus der Zeile C9 ergeben.
2. Es soll nur die Seite 1 von 1 gedruckt werden.
2. Die PDF-Datei soll unter C:/PDF mit dem Namen zusätzlich abgespeichert werden.
3. Die PDF-Datei soll dann mit dem Namen als Anhang zur Mail hinzugefügt werden.

Würde mich wirklich sehr freuen, wenn mir da jemand weiterhelfen könnte. :)  Vielen Dank!  :21:


Quellcode

Sub KW_I_perMail()

'** Dimensionierung der Variablen
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object

'** Vorgaben definieren
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)

'** PDF erzeugen
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  ThisWorkbook.Path & "\Excel-File.pdf", Quality:=xlQualityStandard _
  , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
  :=False

'** E-Mail versenden
strPDF = ThisWorkbook.Path & "\Excel-File.pdf"
With strEmail
  .To = Worksheets("Datenpool").Cells(4, 5).Value
  .Subject = Worksheets("KW").Cells(9, 3).Value & " - " & Worksheets("KW").Cells(8, 3).Value
  .body = "Schönen guten Tag allerseits," & Chr(13) & _
  "" & Chr(13) & _
  "beigefügt der Einsatzplan für die im Betreff genannte Kalenderwoche." & Chr(13)
  .Attachments.Add strPDF
  .Display
  '.Send 'Damit wir die E-Mail sofort versendet
  Kill strPDF
End With
  
'** Objektvariablen wieder löschen
Set OutlookApp = Nothing
Set strEmail = Nothing

End Sub
Hallöchen,

Zitat:Der Name aus der PDF-Datei soll sich aus der Zeile C9 ergeben.

Du nimmst ja schon den Addresaten aus einer Zelle:
.To = Worksheets("Datenpool").Cells(4, 5).Value

Für den Dateinamen machst Du es im Prinzip auch so.
Statt
& "\Excel-File.pdf
nimmst Du
& DeineZelladresse


Zitat:Es soll nur die Seite 1 von 1 gedruckt werden.

Da hilft Dir der Makrorekorder. Beim Speichern als pdf gibt es eine Option, wo Du die Seiten einstellen kannst.

Zitat:Die PDF-Datei soll unter C:/PDF mit dem Namen zusätzlich abgespeichert werden.

Einfach nochmal speichern …

Zitat:Die PDF-Datei soll dann mit dem Namen als Anhang zur Mail hinzugefügt werden.

Das macht doch der Code schon ...
Ok, ich bin eindeutig zu blöd, den Dateiname der PDF-Datei zu ändern.
Bei mir kommen nur Fehler, hast Du einen Tipp für mich?`

Bezüglich dem Druck gibt es doch ein Befehl in VBA  From= 1 to=2 oder so ähnlich, kann man den bei der Erstellung der PDF-Datei nicht nutzen?
Hallöchen,

Zitat:Bezüglich dem Druck gibt es doch ein Befehl in VBA From= 1 to=2 oder so ähnlich, kann man den bei der Erstellung der PDF-Datei nicht nutzen?

ich schrieb
Zitat:Da hilft Dir der Makrorekorder. Beim Speichern als pdf gibt es eine Option, wo Du die Seiten einstellen kannst.

und das sieht dann z.B. so aus, einschl. C:\pdf\ :

Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Pdf\die-.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, _
        OpenAfterPublish:=True

Mit dem Namen aus der Zelle dann so

Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Pdf\" & Worksheets("Datenpool").Range("C9").Value & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, _
        OpenAfterPublish:=True
Vielen Dank, ich habe es mal getestet, aber irgendwie möchte das gute Ding nicht so wie ich es möchte. xD
Hallo,

wie lautet die Fehlermeldung? Gibt es den Pfad? Gibt es das Tabellenblatt mit den Namen? Ist die Zelle gefüllt?
Also ich habe es geschafft, jetzt sucht er nur noch die PDF-Datei, die er als Anhang an die Mail anhängen möchte.
Hallöchen,

beim Erzeugen der pdf gibst Du einen Pfad fest vor. Anschließend nimmst Du irgendeinen anderen Pfad, um die Datei anzuhängen ...