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

Forumthread: PDF umwandeln und automatisch versenden

PDF umwandeln und automatisch versenden
07.10.2013 11:59:55
andreas
Hallo Guten Morgen Spezialisten,
vll. kann man mir weiterhelfen? Brauche einen Code.
Ich habe in einem Tabellenblatt ein kleines Formular erstellt. Nun möchte ich eine Befehlsschaltfläche erstellen, die nach Betätigung mir das Formular in eine PDF Datei umwandelt und anschließen an eine bestimmte Email weiterleitet.
Ich wie nicht ob solch eine Funktion möglich ist, hoffe auf euere Hilfe 
Habe die xls. Datei angehängt.
https://www.herber.de/bbs/user/87561.xls
Danke schon mal im Voraus.
Gruß
Andreas

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PDF umwandeln und automatisch versenden
07.10.2013 12:40:07
Bastian
Hallo Andreas,
hier mal ein Code, den Du Deinen Bedürfnissen nach anpassen kannst:

Option Explicit
Private Sub CommandButton1_Click()
Dim objOutlook As Object
Dim strSignature As String
Dim strDateiname As String
strDateiname = ThisWorkbook.FullName & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDateiname, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Set objOutlook = CreateObject("Outlook.Application")
With objOutlook.CreateItem(0)
.GetInspector.Display 'Signatur abfragen
strSignature = .Body 'Signatur zwischenspeichern
.To = "max@mustermann.de"
'                 .Cc =
'                 .Bcc =
.Subject = "PDF umwandeln und automatisch versenden"
.Body = "Ihr Text..." & strSignature 'Signatur wieder einfügen
.attachments.Add strDateiname
'Mail anzeigen
.Display
'mit dem folgenden Befehl kann direkt gesendet werden:
'mail.send
Kill strDateiname
End With
End Sub
Gruß, Bastian

Anzeige
AW: PDF umwandeln und automatisch versenden
07.10.2013 12:55:29
andreas
Hallo Bastian,
danke mal vorab für deine Mühe!
Habe nun den Code eingefügt, War klar das es nicht gleich funzt :). Wenn ich auf ausführen gehe dann moniert er mir (Fehler beim Kompilieren)
xlTypePDF
?Kannst du mir noch einmal weiterhelfen?
Ich vermute auch noch das ich die feste eMail Adresse in einer Bestimmten Zeile hinterlegen muss, oder?
Gruß
Andreas

Anzeige
AW: PDF umwandeln und automatisch versenden
07.10.2013 13:18:01
Bastian
Hallo Andreas,
lt. Excel-Hilfe gibt es die Methode "ExportAsFixedFormat" erst ab Excel 2007 (sorry, das war mir nicht bewusst).
Ich habe kein Excel 2003 greifbar und kann Dir dabei leider nicht helfen.
Zu Deiner zweiten Frage:
Den Mailadresse kannst Du entweder direkt im Code angeben (wie in meinem Beispiel hinter ".To ="), oder in einer Zelle hinterlegen. In diesem Fall musst Du im Code an der gleichen Stelle auf die Zelle referenzieren.
Gruß, Bastian

Anzeige
also noch offen
07.10.2013 13:21:14
Bastian

AW: also noch offen
07.10.2013 13:21:26
Bastian

AW: PDF umwandeln und automatisch versenden
07.10.2013 13:40:18
Rudi
Hallo,
evtl. so:
Sub Start_PDFPrint_Job()
Dim objOutlook As Object
Dim strSignature As String
Dim strDateiname As String
Dim strPfad As String
With ActiveWorkbook
strDateiname = Left(.Name, Len(.Name) - 4) & "-" & ActiveSheet.Name
strPfad = .Path
End With
ChDrive (Left(strPfad, 2))
ChDir strPfad
strDateiname = strPfad & "\" & strDateiname
ActiveSheet.PrintOut ActivePrinter:="Acrobat PDFWriter auf LPT1:", _
PrintToFile:=True, PrToFilename:=strDateiname
Set objOutlook = CreateObject("Outlook.Application")
With objOutlook.CreateItem(0)
.GetInspector.Display 'Signatur abfragen
strSignature = .Body 'Signatur zwischenspeichern
.To = "max@mustermann.de"
'                 .Cc =
'                 .Bcc =
.Subject = "PDF umwandeln und automatisch versenden"
.Body = "Ihr Text..." & strSignature 'Signatur wieder einfügen
.attachments.Add strDateiname & ".pdf"
'Mail anzeigen
.Display
'mit dem folgenden Befehl kann direkt gesendet werden:
'mail.send
Kill strDateiname
End With
End Sub
Gruß
Rudi

Anzeige
AW: PDF umwandeln und automatisch versenden
07.10.2013 14:19:40
andreas
Vielen lieben Dank erst mal für euerer spontane Hilfe,
Bin gerade am probieren, :(
Gruß
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

PDF umwandeln und automatisch versenden


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues oder nutze ein bestehendes Tabellenblatt, das die Daten enthält, die du als PDF speichern möchtest.
  2. Füge eine Schaltfläche hinzu: Gehe zu Entwicklertools > Einfügen > Schaltfläche (Formularsteuerelement). Ziehe die Schaltfläche auf dein Arbeitsblatt.
  3. Weise der Schaltfläche ein Makro zu: Klicke mit der rechten Maustaste auf die Schaltfläche und wähle Makro zuweisen. Wähle im Pop-up das Makro, das du erstellen wirst.
  4. Öffne den VBA-Editor: Drücke Alt + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  5. Füge den folgenden Code ein: Dieser Code speichert dein Excel-Tabellenblatt als PDF und versendet es per E-Mail.
Option Explicit
Private Sub CommandButton1_Click()
    Dim objOutlook As Object
    Dim strSignature As String
    Dim strDateiname As String
    strDateiname = ThisWorkbook.FullName & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDateiname, _
    IncludeDocProperties:=False, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
    Set objOutlook = CreateObject("Outlook.Application")
    With objOutlook.CreateItem(0)
        .GetInspector.Display 'Signatur abfragen
        strSignature = .Body 'Signatur zwischenspeichern
        .To = "max@mustermann.de" 'E-Mail-Adresse anpassen
        .Subject = "PDF umwandeln und automatisch versenden"
        .Body = "Ihr Text..." & strSignature 'Signatur wieder einfügen
        .Attachments.Add strDateiname
        .Display 'Mail anzeigen
        'mail.Send 'Direkt senden
    End With
    Kill strDateiname 'PDF löschen
End Sub
  1. Schließe den VBA-Editor und teste die Schaltfläche. Klicke darauf, um dein Excel-Dokument in eine PDF-Datei umzuwandeln und sie per E-Mail zu versenden.

Häufige Fehler und Lösungen

  • Fehler beim Kompilieren (xlTypePDF): Dieser Fehler tritt auf, wenn du eine ältere Excel-Version (vor 2007) verwendest. Stelle sicher, dass du Excel 2007 oder neuer hast, da die Methode ExportAsFixedFormat nicht in älteren Versionen verfügbar ist.
  • E-Mail-Adresse nicht hinterlegt: Achte darauf, dass die E-Mail-Adresse korrekt im Code angegeben ist. Du kannst sie auch in eine Zelle deiner Excel-Datei einfügen und im Code darauf referenzieren.
  • Outlook öffnet sich nicht: Stelle sicher, dass Outlook auf deinem Computer installiert und konfiguriert ist.

Alternative Methoden

  • Manuelles Speichern: Du kannst auch manuell über Datei > Speichern unter > PDF wählen, um deine Excel-Datei als PDF zu speichern, bevor du sie manuell versendest.
  • Online-Tools: Verwende Online-Tools, um eine Excel-Datei in ein PDF-Dokument umzuwandeln und sie anschließend per E-Mail zu versenden.
  • Drittanbieter-Software: Es gibt Softwarelösungen, die eine Automatisierung des Konvertierens und Versendens von PDFs anbieten.

Praktische Beispiele

  • Formular erstellen: Du kannst ein Excel-Formular erstellen, das als PDF gespeichert und versendet wird. Dies ist besonders nützlich für Umfragen oder Anmeldungen.
  • Berichte und Rechnungen: Verwende den obigen VBA-Code, um monatliche Berichte oder Rechnungen automatisch zu erstellen und per E-Mail an Kunden zu versenden.

Hier ist ein Beispiel, wie du ein Excel-Dokument in ein PDF-Formular umwandeln kannst:

Sub FormularInPDF()
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\DeinPfad\Formular.pdf"
End Sub

Tipps für Profis

  • E-Mail-Vorlagen nutzen: Verwende E-Mail-Vorlagen in Outlook, um den Text für die E-Mail zu automatisieren.
  • Fehlerbehandlung im VBA: Integriere Fehlerbehandlungsroutinen in deinen Code, um Probleme beim Versenden der E-Mail abzufangen.
  • Dynamische Dateinamen: Du kannst den Dateinamen dynamisch anpassen, um z.B. das aktuelle Datum einzufügen. Beispiel:
strDateiname = "Bericht_" & Format(Date, "YYYYMMDD") & ".pdf"

FAQ: Häufige Fragen

1. Kann ich den VBA-Code anpassen? Ja, du kannst den Code an deine Bedürfnisse anpassen, z.B. die E-Mail-Adresse ändern oder den Text im E-Mail-Body anpassen.

2. Funktioniert das auch mit Excel 2003? Der Code verwendet die ExportAsFixedFormat-Methode, die erst ab Excel 2007 verfügbar ist. In Excel 2003 musst du alternative Methoden verwenden, um eine PDF zu erstellen.

3. Wie kann ich das PDF direkt ohne Anzeige der E-Mail senden? Du kannst die Zeile .Display durch .Send ersetzen, um die E-Mail direkt zu senden, ohne sie vorher anzuzeigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige