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-Code überspringt einzelne Zeilen

    in Microsoft Word Hilfe
    VBA-Code überspringt einzelne Zeilen: Liebe Forumsgemeinde, ich habe einen vba-code in word. Ganz grob, es wird eine Word-Tabelle 1x1 erzeugt, dort wird ein Bild eingefügt, anschließend wird die Tabellegröße auf die Bildgröße...
  3. VBA - Ausblenden aller Tabellenblätter außer X

    in Microsoft Excel Hilfe
    VBA - Ausblenden aller Tabellenblätter außer X: Guten Morgen, ich bin ziemlicher VBA Neuling und habe aktuell Probleme mit einer Datei, die ich entwickelt habe. Zu der Datei: Es handelt sich um Daten, auf die lediglich ein bestimmter...
  4. Kamera in Excel einbinden und per vba Fotos erstellen

    in Microsoft Excel Hilfe
    Kamera in Excel einbinden und per vba Fotos erstellen: Kamera in Excel einbinden Hallo, ich suche einen Code für eine UserForm, mit der ich die integrierte Kamera des WinPC in der UserForm anzeigen lassen kann und davon ein Bild sichern kann.
  5. Liste aller Comboboxen im Sheet

    in Microsoft Excel Hilfe
    Liste aller Comboboxen im Sheet: Hallo allerseits, Ich möchte alle Comboboxen eines Worksheets mit VBA auslesen und finde nicht den Namen der Liste in den Sheet-Eigenschaften, in der die Comboboxen gespeichert sind. Wer weiß, wo...
  6. Pivot Tabelle: Quelle per VBA verändern

    in Microsoft Excel Hilfe
    Pivot Tabelle: Quelle per VBA verändern: Hi all, gibt es eine Möglichkeit, wie ich die Quelle einer Pivot Tabelle mit einem Klick aktualisieren kann? 1) Beispiel Quelle: [Datum_Dateiname.xlsx]Tabelle1!$A:$AA 2) Beispiel wie es je nach...
  7. Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche)

    in Microsoft Excel Hilfe
    Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche): Hallo zusammen, ich arbeite mit einer Excel-Arbeitsmappe, die mehrere Tabellenblätter enthält. Jedes Blatt dokumentiert bestimmte Vorgänge, und die Struktur der Daten ist in allen Blättern...
  8. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  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