Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel soll mit Visual Basic Mail versenden als PDF
#1
Hallo,
Ich bin neu hier im Forum und habe mich auch noch nicht vorgestellt.Das werde ich auch noch baldmöglichst nachholen.

Natürlich habe ich eine Frage zu Excel. Genauer zu Visual Basic in Excel:
Ich habe eine Excel-Datei mit mehreren Blattregistern / Tabellenreitern. Eine Tabelle davon möchte ich gerne mit einem Macro automatisch per Email versenden. Ich versuche nun schon eine Zeit lang aber ich bekomme es nicht hin, nur das die ganze Arbeitsmappe als PDF versendet wird bzw. nur die eine Seite, aber dann nicht als PDF. Ich hänge gerade an dem Punkt, und hoffe man kann mir hier helfen um meinen Lapsus zu beseitigen.

Hier der Code, den ich mir erlesen und zusammengestückelt habe. Damit sende ich die gesamte Arbeitsmappe als PDF.
:69:
Code:
Sub sendMail()
Dim mePDFD As String
Dim MyOutApp As Object, MyMessage As Object




    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        ThisWorkbook.Path & "\testPDF.pdf", Quality:=xlQualityStandard _
        , IncludeDocProperties:=False, IgnorePrintAreas:=False, _
        OpenAfterPublish _
        :=False


mePDFD = ThisWorkbook.Path & "\testPDF.pdf"
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
    With MyMessage
        .To = "info@test.dee"
        .Subject = "Bestellung der Speisen für kommende Woche" 'Betreffzeile
        .body = "Sehr geehrte Damen und Herren, anbei die Bestellung für" & _
          "kommende Woche. Vielen Dank"
        .Attachments.Add mePDFD
        .Display
        '.Send
        Kill mePDFD
    End With
    Set MyOutApp = Nothing
    Set MyMessage = Nothing
End Sub

Vielen vielen leiben Dank.
Antworten Top
#2
Hallo,

so sollte das aktive Blatt exportiert werden (aber ungetestet):

Code:
Sub sendMail()
  Dim mePDFD As String
  Dim MyOutApp As Object, MyMessage As Object
  
  mePDFD = ThisWorkbook.Path & "\testPDF.pdf"

  ActiveSheet.Copy
  
  ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=mePDFD, _
    Quality:=xlQualityStandard, IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, OpenAfterPublish:=False
  ActiveWorkbook.Close False

  Set MyOutApp = CreateObject("Outlook.Application")
  Set MyMessage = MyOutApp.CreateItem(0)
  With MyMessage
    .To = "info@test.dee"
    .Subject = "Bestellung der Speisen für kommende Woche" 'Betreffzeile
    .body = "Sehr geehrte Damen und Herren, anbei die Bestellung für" & _
      "kommende Woche. Vielen Dank"
    .Attachments.Add mePDFD
    .Display
    '.Send
  End With
  
  Kill mePDFD
  Set MyMessage = Nothing
  Set MyOutApp = Nothing
End Sub

Gruß Uwe
Antworten Top
#3
Vielen lieben Dank.

Ich habe noch folgende Änderung gemacht, und dann ging alles, wie ich es haben wollte.

Herzlichen Dank für die schnelle Hilfe.

Code:
Sub sendMail()
  Dim mePDFD As String
  Dim MyOutApp As Object, MyMessage As Object
  
  mePDFD = ThisWorkbook.Path & "\testPDF.pdf"

  Sheets("Fertig").Copy
  
  ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=mePDFD, _
    Quality:=xlQualityStandard, IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, OpenAfterPublish:=False
  ActiveWorkbook.Close False

  Set MyOutApp = CreateObject("Outlook.Application")
  Set MyMessage = MyOutApp.CreateItem(0)
  With MyMessage
    .To = "info@test.dee"
    .Subject = "Bestellung der Speisen für kommende Woche" 'Betreffzeile
    .body = "Sehr geehrte Damen und Herren, anbei die Bestellung für" & _
      "kommende Woche. Vielen Dank"
    .Attachments.Add mePDFD
    .Display
    '.Send
  End With
  
  Kill mePDFD
  Set MyMessage = Nothing
  Set MyOutApp = Nothing
End Sub

Danke nochmal Smile[/code]
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste