Microsoft Excel

Herbers Excel/VBA-Archiv

Statt PDFCreator mit Windows PDF drucken


Betrifft: Statt PDFCreator mit Windows PDF drucken
von: Sabrina
Geschrieben am: 12.08.2017 19:18:25

Hallo Leute.

habe schon wieder ein Problem.
Hatte unter Excel 2003 mit dem PDF Creater bestimmte Sheets mit einem Makro per Knopfdruck gespeichert und versendet.
Irgendwann ging es nicht mehr.
Jetzt wechsel ich auf Excel 2013 und möchte das gleiche Marko, aber nur mit dem Microsoft Drucker machen. Dieser heisst bei mir Microsoft Print to PDF.

Ich bekomme es aber einfach nicht hin. Was muss ich ändern?

LG

Sabbel

Sub PDF_mailen(Auswahl)
Application.ScreenUpdating = False
Dim objPDFCreator As Object, objPrint As Object
Dim strActPrinter As String, strRec As String, spe8 As String, GeraeteArt As String
On Error GoTo Errorhandler
GeraeteArt = ActiveSheet.Range("GeraeteArt").Value
spe8 = ActiveSheet.Range("spe8").Value
strRec = ActiveSheet.Range("spe6").Text
If Range("spe8") = "" Then
    MsgBox "Es fehlt die Autragsnummer!", 0, "Antwortfenster"
    Exit Sub
End If
If Not IsValidMailAddress(strRec) Then strRec = ActiveSheet.Range("spe7").Text
If Not IsValidMailAddress(strRec) Then strRec = ActiveSheet.Range("spe116").Text
If Not IsValidMailAddress(strRec) Then
  strRec = InputBox("Bitte Empfängeradresse angeben:", "Mail")
  If strRec = "" Then Exit Sub
End If

strActPrinter = Application.ActivePrinter
Debug.Print Application.ActivePrinter
Application.ActivePrinter = "PDFCreator auf Ne02:"
Set objPDFCreator = CreateObject("PDFCreator.JobQueue")
objPDFCreator.Initialize
'***********************************************
' Seite zum Mailen auswählen
'***********************************************
' Kostenvoranschlag
    If Auswahl = "Kostenvoranschlag" Then
        If GeraeteArt = "Smartphone" Or GeraeteArt = "Tablet" Then
            Windows("Ausdruck.xls").Activate
            Sheets("SmartphoneKVA").Select
            ActiveSheet.PrintOut From:=2, TO:=2
        Else
            Windows("Ausdruck.xls").Activate
            Sheets("Kostenvoranschlag").Select
            ActiveSheet.PrintOut From:=2, TO:=2
        End If
        Windows("Ausdruck.xls").Visible = False
    End If
' Auftrag
    If Auswahl = "Auftrag" Then
        If GeraeteArt = "Wert1" Or GeraeteArt = "Wert2" Then
            Windows("Ausdruck.xls").Activate
            Sheets("Seite1").Select
            ActiveSheet.PrintOut From:=2, TO:=2
        Else
            Windows("Ausdruck.xls").Activate
            Sheets("Seite2").Select
            ActiveSheet.PrintOut From:=2, TO:=2
            Windows("Ausdruck.xls").Visible = False
        End If
        Windows("Ausdruck.xls").Visible = False
    End If

'***********************************************
' Auswahl Ende
'***********************************************
objPDFCreator.WaitForJob (10)

Set objPrint = objPDFCreator.NextJob

With objPrint
  .SetProfileByGuid ("DefaultGuid")
  .SetProfileSetting "EmailClient.Enabled", "true"
  .SetProfileSetting "EmailClient.Subject", Auswahl & " " & spe8
  .SetProfileSetting "EmailClient.Content", "Deine Nachricht"
  .SetProfileSetting "EmailClient.Recipients", strRec
  .ConvertTo ("D:\Auftrag\PDF\" & Auswahl & " " & spe8 & ".pdf")
  
  If .IsFinished = True Then
    objPDFCreator.ReleaseCom
  End If
End With


Errorhandler:
'Application.ActivePrinter = strActPrinter
Set objPDFCreator = Nothing
Set objPrint = Nothing
End Sub

  

Betrifft: AW: Statt PDFCreator mit Windows PDF drucken
von: Hajo_Zi
Geschrieben am: 12.08.2017 19:27:09

warum nicht einfach speichern unter PDF?

GrußformelHomepage

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.


  

Betrifft: AW: Statt PDFCreator mit Windows PDF drucken
von: Sabrina
Geschrieben am: 12.08.2017 19:52:13

Hallo Hajo,

ich möchte die PDF Datei speichern und in die Mail anhängen.
Bekomme es aber nicht hin :(

LG


  

Betrifft: AW: Statt PDFCreator mit Windows PDF drucken
von: Sabrina
Geschrieben am: 12.08.2017 21:34:49

Huu

Ich habe ein Skript gefunden dass ich am anpassen bin.
Nur wird die Mail direkt versendet.
Wie kann ich bei dem Makro anpassen dass sich Outlook öffnet damit ich noch was schreiben kann.

Liebe Grüße Sabbel

Sub PDF_mailen(auswahl)

  Dim sBlatt As String
  Dim sPdfDateiF5 As String
  Dim OutApp As Object
  Dim OutMail As Object

Dim strRec As String, spe8 As String, GeraeteArt As String
   spe8 = ActiveSheet.Range("spe8").Value
  ' speichern unter als PDF:
  sPdfDateiF5 = "D:\Auftrag\PDF\" & auswahl & "\" & auswahl & " " & spe8 & ".pdf"
 
  ' speichert das aktuelle Blatt (=ActiveSheet) als PDF
  ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=sPdfDateiF5, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

If Not IsValidMailAddress(strRec) Then strRec = ActiveSheet.Range("spe7").Text
If Not IsValidMailAddress(strRec) Then strRec = ActiveSheet.Range("spe116").Text
If Not IsValidMailAddress(strRec) Then
  strRec = InputBox("Bitte Empfängeradresse angeben:", "Mail")
  If strRec = "" Then Exit Sub
End If
  ' Bezug zu Outlook herstellen...
  Set OutApp = CreateObject("Outlook.Application")

  ' ...neue E-Mail erzeugen
  Set OutMail = OutApp.CreateItem(0)

  ' Werte den Eigenschaften zuweisen...
  OutMail.To = strRec
  OutMail.CC = ""
  OutMail.BCC = ""
  OutMail.Subject = auswahl & spe8
  OutMail.Body = ""

  ' Anhang hinzufügen:
  OutMail.Attachments.Add sPdfDateiF5
 
  ' ...und abschicken
  'OutMail.Send

  ' Objekte sauber auflösen
  Set OutMail = Nothing
  Set OutApp = Nothing
 
  ' Tabelle schließen
  Application.DisplayAlerts = False

End Sub



  

Betrifft: AW: Statt PDFCreator mit Windows PDF drucken
von: fcs
Geschrieben am: 12.08.2017 21:47:09

Hallo Sabbel,

statt mit .Send senden mit .Dispaly anzeigen

  ' ...und anzeigen
  OutMail.Display
Gruß
Franz


  

Betrifft: AW: Statt PDFCreator mit Windows PDF drucken
von: Sabrina
Geschrieben am: 12.08.2017 22:05:51

Oh vielen Dank <3

Das war es ^^

Ich habe noch eine Frage zu

ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=sPdfDateiF5, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
Ich muss verschiedene Sheets und dann noch einzelne Seiten auswählen können.

Was muss ich angeben um aus Ausdruck.xls Sheet Rechnung die 3. Seite als PDF zu erreichen.

LG

Sabbel


  

Betrifft: AW: Statt PDFCreator mit Windows PDF drucken
von: mumpel
Geschrieben am: 13.08.2017 06:45:14

Hallo!

Mit "From" und "To", ähnlich wie bei der PrintOut-Methode. ExportAsFixedFormat - MSDN.

Gruß, René