Office: (Office 2016) VBA fü Senden einer Email mit PDF Anhang

Helfe beim Thema VBA fü Senden einer Email mit PDF Anhang in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Hallo, ich stecke ein wenig fest. Ich musste von Excel auf Word umsteigen bei ein Formular. Nun baue ich die Macros auf Word um. Bei ein Marco... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von Raiko, 26. Januar 2019.

  1. Raiko hat Ahnung

    VBA fü Senden einer Email mit PDF Anhang


    Hallo,

    ich stecke ein wenig fest.

    Ich musste von Excel auf Word umsteigen bei ein Formular.
    Nun baue ich die Macros auf Word um.
    Bei ein Marco hänge ich aber fest.

    Das Versenden der Email mit PDF Anhang.

    Hier das Macro:


    Sub EmailPDf()
    Dim app As Object
    Dim File As String
    Dim isNew As Boolean

    File = ActiveDocument.Name & ".pdf"

    ActiveDocument.ExportAsFixedFormat xlTypePDF, Environ("TEMP") & "" & File !! hier entsteht der Fehler!!

    On Error Resume Next
    Set app = GetObject(, "Outlook.Application")
    If app Is Nothing Then
    Set app = CreateObject("Outlook.Application")
    isNew = True
    End If

    With app.CreateItem(0)
    .To = ""
    .cc = ""
    .BCC = ""
    .Subject = "Anlage: " & File

    .Body = "Hallo Liebes Klix Team" & vbCr _
    & vbCr _
    & "Anbei der Reparatur - Wartungsauftrag als PDF." & vbCr _
    & vbCr _
    & "Mit freundlichen Grüßen"

    .Attachments.Add Environ("TEMP") & "" & File
    .Display 'Email anzeigen

    End With

    If isNew Then app.Quit
    End Sub

    Vieleicht habt ihr ja eine Lösung.

    Mfg

    Raiko
     
  2. Exl121150 Erfahrener User
    Hallo,

    es wäre schön gewesen, hättest du uns auch die ErrorNr./ErrorText mitgeteilt. Ich hätte gezielter helfen können.

    Ich sehe bei dieser Anweisung ein dreifaches Problem:
    • Bei mir liefert die Funktion Environ("TEMP") einen Pfad ohne einen abschließenden Backslash zurück, sodass bei mir dieser Ausdruck heißen müsste:
      Environ("TEMP") &"\"&File
    • Du verwendest bei der Parameterübergabe an die Methode "ExportAsFixedFormat" Positionsparameter, was ja durchaus erlaubt ist. Tut man das aber, so muss man sich an die genaue Reihenfolge halten, wie sie von Microsoft festgelegt wurde:
      Nur wenn man benannte Parameter verwendet, darf man eine geänderte Parameterreihenfolge verwenden:
      a) Schreibweise als Positionsparameter: ActiveDocument.ExportAsFixedFormat Environ("TEMP") & "\" & File , wdExportFormatPDF
      b) Schreibweise als benannte Parameter: ActiveDocument.ExportAsFixedFormat ExportFormat:=wdExportFormatPDF, OutputFilename:=Environ("TEMP") & "\" & File
    • Das 3. Problem wirst du vielleicht jetzt schon bemerkt haben: Du verwendest innerhalb von Word-VBA die Excel-Konstante xlTypePDF. Diese muss in Word-VBA wdExportFormatPDF heißen bzw. hat den numerischen Wert 17 - (es sei denn, du hast auch einen Verweis auf die "Microsoft Excel 16.0 Object Library" gesetzt, sodass auch diese gleichzeitig gelinkt ist - aber auch das würde nicht funktionieren, da xlTypePDF den numerischen Wert 0 hat).
     
    Exl121150, 27. Januar 2019
    #2
  3. Raiko hat Ahnung
    Hallo,

    danke für die Hilfe.
    Ich hätte auch erwähn sollen. Ich bringe mir erst nach und nach VBA bei. Bisher gut bei Excel. Bei Word hatte ich bisher gar keine Erfahrungen.
    Leider muss ich auf Word zurück greifen. Wir arbeiten bei uns auf Arbeit teils mit Remote PC`s. Und frag nicht warum, dass öffnen einer Excel Datei dauert ewig und das Bearbeiten bzw Speichern.

    Ich habe einige deiner Vorschläge einmal eingebaut und es kommt nun keine Fehler Meldung mehr (Vorher war es glaube Fehler 13).
    Denn richtigen Test kann ich leider erst auf Arbeit machen.
    Ich weis auch nicht ob ich bei der Mail mit Temp arbeiten muss.
    Es gibt noch ein Macro, welches die Word als PDF in ein bestimmten Ordner mit Namen Speichert. Wenn ich diese beide zusammen führe und erst die Speicherung durchgeführt wird, kann das Email Macro doch auf genau diese Datei zugreifen.
    Hatte schon einiges im Internet durch gelesen. Problem ist aber, es sind ja mehrere Aufträge, PDF in diesen Ordner. Darum werden sie mit Datum,Uhrzeit und halt die Bezeichnung des Auftrages abgelegt.

    Hier die Kompletten Macros und die Word Datei dazu.
    Da ich noch ein kleines Problem habe.
    Der Command Button, wenn ich diese einfüge,kann ich ihn Nicht Druckbar machen. Ok, sobald ich aber das Blatt vor Bearbeitung Schütze (nur die Rich Texte sollen bearbeitbar sein), wird der Button wieder mitgedruckt.

    Sub SpeichernPDF()

    Dim pfad As String, dateiname As String, ganzername As String

    dateiname = ActiveDocument.ContentControls(2).Range.Text 'zusammengesetzter filename
    pfad = "G:\Public\GSE\Reperatur Aufträge" 'vorgegebener Pfad
    ganzername = Format(Date, "dd.mm.yyyy") & "_" & Format(Time, "hhmm") & "_" & dateiname

    With Application.FileDialog(msoFileDialogSaveAs)

    .InitialFileName = ganzername
    .FilterIndex = 7 '7 steht für pdf
    If .Show = -1 Then .Execute
    End With
    End Sub



    Sub EmailPDf()
    Dim app As Object
    Dim File As String
    Dim isNew As Boolean

    File = ActiveDocument.Name & ".pdf"

    ActiveDocument.ExportAsFixedFormat Environ("TEMP") & "" & File, wdExportFormatPDF

    'DocumentObject.ExportAsFixedFormat(OutputFileName, ExportFormat [, OpenAfterExport, OptimizeFor, Range, From, To , Item, IncludeDocProps, KeepIRM, CreateBookmarks, DocStructureTags, BitmapMissingFonts, UseISO19005_1, FixedFormatExtClassPtr])
    'ActiveDocument.ExportAsFixedFormat ExportFormat:=wdExportFormatPDF, OutputFilename:=Environ("TEMP") & "" & File


    On Error Resume Next
    Set app = GetObject(, "Outlook.Application")
    If app Is Nothing Then
    Set app = CreateObject("Outlook.Application")
    isNew = True
    End If

    With app.CreateItem(0)
    .To = ""
    .cc = ""
    .BCC = ""
    .Subject = "Anlage: " & File

    .Body = "Hallo Liebes Klix Team" & vbCr _
    & vbCr _
    & "Anbei der Reparatur - Wartungsauftrag als PDF." & vbCr _
    & vbCr _
    & "Mit freundlichen Grüßen"

    .Attachments.Add Environ("TEMP") & "" & File
    .Display 'Email anzeigen

    End With

    If isNew Then app.Quit
    End Sub
     
    Zuletzt bearbeitet: 28. Januar 2019
Thema:

VBA fü Senden einer Email mit PDF Anhang

Die Seite wird geladen...
  1. VBA fü Senden einer Email mit PDF Anhang - Similar Threads - VBA fü Senden

  2. Makro um E-Mails zu verschieben

    in Microsoft Outlook Hilfe
    Makro um E-Mails zu verschieben: Ich suche ein Makro das ich auf einem Rechner ausführen lassen kann um gelesene Mails z.B. auf dem Handy in einen bestimmten Ordner zu verschieben um meinen Posteingang "sauber" zu halten....
  3. Access VBA – Prüfen, ob eine PDF bereits geöffnet ist, bevor sie erneut geöffnet wird

    in Microsoft Access Hilfe
    Access VBA – Prüfen, ob eine PDF bereits geöffnet ist, bevor sie erneut geöffnet wird: Beschreibung: Ich arbeite mit Access VBA und habe eine Funktion implementiert, die beim Klick auf einen Button („Unterzeichnet“) einen Bericht als PDF exportiert. Was aktuell funktioniert:...
  4. VBA: Was ist "Tabelle1"?

    in Microsoft Excel Hilfe
    VBA: Was ist "Tabelle1"?: Hallo, ich bin gerade dabei einen VBA-Code für meine Zwecke anzupassen. Leider funktioniert eine der Berechnungen nicht mehr und ich bin nun auf Fehlersuche. Dabei verstehe ich (unter anderem)...
  5. VBA: Form in zwei Modulen verwenden

    in Microsoft Excel Hilfe
    VBA: Form in zwei Modulen verwenden: Hallo zusammen, ich habe ein VBA-Modul, von welchem ich ein Form aufrufe. Dieses Form hat einfach ein paar Buttons, und gibt zurück, ob ein Button gedrückt worden ist. Diese Information wird dann...
  6. VBA - Wert in einer Spalte finden und diese Zeile löschen

    in Microsoft Excel Hilfe
    VBA - Wert in einer Spalte finden und diese Zeile löschen: Moin moin ihr Lieben, ich habe nun schon im Netz nach einer Lösung gesucht, aber nichts passendes oder funktionstüchtiges gefunden. Ich habe eine Tabelle mit Spalten A - G. Nun soll Excel in der...
  7. Freigegebene Excel-Tabelle als Quelle für Seriendruck

    in Sonstiges
    Freigegebene Excel-Tabelle als Quelle für Seriendruck: Hallo, :) wir haben eine Excel-Tabelle, welche auf der Cloud liegt und bei Änderungen automatisch speichert. Es haben mehrere Personen Lese- und Schreibrechte und sobald jemand etwas abändert,...
  8. VBA: Kein "Undo" mehr möglich?

    in Microsoft Excel Hilfe
    VBA: Kein "Undo" mehr möglich?: Hallo, ich habe meine Bestell-Tabelle so abgeändert, dass einiges per Makro, bzw. mittels Buttons übertragen wird. Also zum Beispiel wird mit einem Klick auf den Button die Lieferadresse gleich...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden