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 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"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Erstellung eines Dynamischen Kalenders (ggf. VBA)

    in Microsoft Word Hilfe
    Erstellung eines Dynamischen Kalenders (ggf. VBA): Guten Morgen an Alle, ich hoffe, es geht euch soweit gut :) Ich wende mich heute an euch, weil ich gerade vollkommen verzweifle und irgendwie so ganz und garnicht weiterkomme und irgendwie...
  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