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. VBA Outlook E-Mailvorschau aktualisieren wg. Flag-Text

    in Microsoft Outlook Hilfe
    VBA Outlook E-Mailvorschau aktualisieren wg. Flag-Text: Hallo Leute, ich benötige bei einem Problem euer Wissen. Ich setze in Outlook einen Flag "Erledig" mit einem individuellen Text (= MdName). Allerdingst wird mir dieser Text erst nach einem...
  3. VBA HTTP Post - Probleme JSON Payload

    in Microsoft Excel Hilfe
    VBA HTTP Post - Probleme JSON Payload: Moin, ich steh auf dem Schlauch.... Ich möchte mit VBA einen HTTP Post senden. Das klappt beim versenden OHNE Payload auch soweit auch ganz gut. Private Function http_post(url As String,...
  4. Kombinationsfeld in VBA auswerten

    in Microsoft Access Hilfe
    Kombinationsfeld in VBA auswerten: Guten Tag, ich habe ein VBA-Problem mit Kombinationsfeldern. Umfeld: Eine Tabelle A mit Namen incl. Adressen, indiziert (NamenID), keine doppelten Einträge möglich. Eine Tabelle B mit Rechnungen,...
  5. Download per VBA nicht aktuell

    in Microsoft Access Hilfe
    Download per VBA nicht aktuell: Hallo, ich nutze in VBA eine Download-Funktion, die mir die neueste Version meines Frontend downloaden soll. Der Download an sich funktioniert, doch leider wird eine alte Version gespeichert. Ich...
  6. Autofilter bei Zelländerung automatisch aktualisieren – ohne VBA

    in Microsoft Excel Hilfe
    Autofilter bei Zelländerung automatisch aktualisieren – ohne VBA: Hallo zusammen, ich habe eine Frage zur automatischen Aktualisierung von Autofilter-Ergebnissen in einer intelligenten Tabelle – und zwar ohne VBA. Ausgangssituation: Ich habe eine intelligente...
  7. Bereich mit VBA zusammenhalten

    in Microsoft Word Hilfe
    Bereich mit VBA zusammenhalten: Ich schreibe aus Access mit VBA Anschriften in ein Worddokument. Jede Anschrift soll zusammengehalten werdem, damit am Seitenende keine Anschrift getrennt wird. Wie muss ich vorgehen um eine...
  8. bedingte Formatierung Schriftgröße (VBA?)

    in Microsoft Excel Hilfe
    bedingte Formatierung Schriftgröße (VBA?): Hallo zusammen, ich kämpfe mich gerade durch die bedingte Formatierung von Excel. So langsam habe ich das Gefühl, dass ich damit die Schriftgröße einer Tabelle nicht ändern kann. Laut Google...
  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