Clever-Excel-Forum

Normale Version: Excel soll mit Visual Basic Mail versenden als PDF
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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.
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
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]