Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel Blatt als PDF speichern und dann verschicken

Excel Blatt als PDF speichern und dann verschicken
M
Hallo,
ich glaube ich habe mein Werk jetzt fast fertig, aber nun scheitert es doch an den letzen Zügen und an meinen nicht vorhandenen VBA Kenntnissen.
Dies ist mein erster Makro und der funktioniert auch so wie ich es mit vorgestellt habe:
Sub Makro1()
' Makro1 Makro
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\RECHNUNGEN\ " & Cells(6, 1).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub

speichert das vorhandene Excelblatt als PDF Datei.
Aber nun soll das PDF Dokument auch verschickt werden....... ? Das PDF Dokument heißt immer anders.... je nach dem was in dem Feld steht.
Sub Makro8()
' Makro8 Makro
' Speichern und verschicken PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\RECHNUNGEN\ " & Cells(6, 1).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Application.Dialogs(xlDialogSendMail).Show
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = Sheets("Tabelle1").Range("D16")
.CC = ""
.BCC = ""
.Subject = Sheets("Tabelle1").Range("D3")
.Body = Sheets("Tabelle1").Range("A3")
.Attachments.Add ActiveWorkbook.FullName
.Send
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Und jetzt klappt es hinten und vorne nicht.... Verschicken geht, aber er speichert den Dateianhang immer als Excel Datei und den vorhandenen Dateinamen.
Beim verschicken steht im Makro ja auch: Attachments.Add ActiveWorkbook.FullName was muss ich hinschreiben damit er den oberen Teil mit den PDF speichern nimmt ?
Bin für jeden Tipp Dankbar !!!!!!!
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excel Blatt als PDF speichern und dann verschicken
03.05.2010 09:14:35
Mister
Hallo,
folgendes Makro funktioniert bei mir einwandfrei:
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 = "Meine E_mail Adresse"
.Subject = "hier ist die Test PDF Datei" 'Betreffzeile
.body = "geht doch!"
.Attachments.Add mePDFD
.Display
'.Send
Kill mePDFD
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub
Der "Speichern als AddIn" für Office 2007 muss installiert sein damit es funktioniert.
Gruß
Martin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel Blatt als PDF speichern und per Mail versenden


Schritt-für-Schritt-Anleitung

Um ein Excel-Blatt als PDF zu speichern und es per Mail zu versenden, kannst Du das folgende VBA-Makro verwenden. Dieses Beispiel zeigt, wie Du ein einzelnes Tabellenblatt als PDF speichern und dann per Mail verschicken kannst.

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere folgenden Code in das Modul:
Sub SpeichernUndVersendenPDF()
    Dim PDFName As String
    Dim OutApp As Object
    Dim OutMail As Object

    ' Definiere den Dateinamen und Speicherort
    PDFName = "C:\RECHNUNGEN\" & Cells(6, 1).Value & ".pdf"

    ' Excel-Blatt als PDF speichern
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFName, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False

    ' Outlook-Objekt erstellen
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    ' E-Mail erstellen und PDF anhängen
    With OutMail
        .To = Sheets("Tabelle1").Range("D16").Value
        .Subject = Sheets("Tabelle1").Range("D3").Value
        .Body = Sheets("Tabelle1").Range("A3").Value
        .Attachments.Add PDFName
        .Send ' Zum Testen kannst Du .Display verwenden
    End With

    ' Objekte freigeben
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus.

Dieses Makro speichert das aktuelle Blatt als PDF und versendet es direkt per Outlook. Stelle sicher, dass der Pfad für die PDF-Datei korrekt ist.


Häufige Fehler und Lösungen

  • Problem: Das PDF wird nicht korrekt gespeichert.

    • Lösung: Überprüfe den Pfad, in dem das PDF gespeichert werden soll. Achte darauf, dass der Ordner existiert.
  • Problem: Der Dateianhang in der E-Mail ist die Excel-Datei statt des PDFs.

    • Lösung: Stelle sicher, dass der Dateiname in der Attachments.Add-Zeile korrekt auf die PDF-Datei verweist.
  • Problem: Outlook öffnet sich nicht.

    • Lösung: Stelle sicher, dass Outlook korrekt installiert und konfiguriert ist.

Alternative Methoden

  1. Excel als PDF speichern mit der eingebauten Funktion:

    • Du kannst das Excel-Blatt manuell als PDF speichern, indem Du auf Datei > Speichern unter gehst und das Format auf PDF änderst.
  2. Verwendung von Excel-Add-Ins:

    • Es gibt Add-Ins, die es ermöglichen, Excel-Dateien als ausfüllbare PDFs zu speichern. Diese können nützlich sein, wenn Du Formulare erstellen möchtest.

Praktische Beispiele

  • Beispiel 1: Um ein einzelnes Excel-Blatt zu speichern, kannst Du den obigen Code anpassen, um spezifische Zellwerte für den Dateinamen zu verwenden.

  • Beispiel 2: Wenn Du mehrere Blätter als PDFs speichern und versenden möchtest, kannst Du eine Schleife im VBA-Code verwenden, um durch die Blätter zu iterieren.


Tipps für Profis

  • Nutze Application.DisplayAlerts = False vor dem Speichern, um unerwünschte Bestätigungsdialoge zu unterdrücken.

  • Verwende .Display statt .Send, um die E-Mail vor dem Versand anzuzeigen und sicherzustellen, dass alles korrekt ist.

  • Experimentiere mit dem PDF-Qualitätsparameter, um die Dateigröße und Qualität zu optimieren.


FAQ: Häufige Fragen

1. Kann ich ein Excel-Blatt als ausfüllbares PDF speichern?
Ja, Du kannst spezielle Software oder Add-Ins verwenden, um ausfüllbare PDFs zu erstellen.

2. Wie kann ich mehrere Excel-Blätter als PDFs speichern?
Du kannst eine Schleife im VBA verwenden, um alle gewünschten Blätter zu durchlaufen und sie nacheinander als PDF zu speichern.

3. Funktioniert das Makro auch in Excel Online?
Nein, das Makro benötigt die Desktop-Version von Excel, da VBA in Excel Online nicht unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige