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: Spalten auf anderen Worksheeds in der Mappe ausblenden.

    in Microsoft Excel Hilfe
    VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.: Hallo zusammen, Eine Tabelle mit 9 Worksheets, Datenblatt, Studien, Studie_1 ...Studie_7. Auf dem Deckblatt werden in Zelle B4-B10 die Namen der Studien eingetragen. Davon abhängig ob ein Name...
  3. VBA Zeilen kopieren mit Bedingung

    in Microsoft Excel Hilfe
    VBA Zeilen kopieren mit Bedingung: Hallo zusammen, Ich möchte per Makro Zeilen aus Tabelle2 in Tabelle3 kopieren, wenn eine Bedingung erfüllt ist. Bedingung: Der Wert in Spalte E (Tabelle2) kommt in Tabelle1 in Spalte E vor....
  4. VBA - Datensätze ans Ende einer anderen Tabelle kopieren

    in Microsoft Excel Hilfe
    VBA - Datensätze ans Ende einer anderen Tabelle kopieren: Hallo zusammen, ich habe gerade eine "Abrechnungs"-Datei für einen Kindergartenbasar erstellt. Es wäre klasse, wenn man per Schaltfläche die Datensätze aus der Tabelle "Kaeufer" ans Ende der...
  5. Laufzeitfehler 9 VBA

    in Microsoft Excel Hilfe
    Laufzeitfehler 9 VBA: Nschdem ich die Office Version von 2010 auf 2019 aktualisiert habe wird mir der Laufzeitfehler 9 ausgegeben. Das ist der Code Sub FiberCollect() Dim NumRows As Long 'letzte celle Dim Counter As...
  6. Excel VBA Spalten mit Ordnerinhalt vergleichen

    in Microsoft Excel Hilfe
    Excel VBA Spalten mit Ordnerinhalt vergleichen: Hallo, Bin ehr Excel VBA Neuling, Würde aber gerne in einer bestehender Tabelle die Auflistung der Ordner mit dem eigentlichen Stand in den besagten Ordner kontrollieren. Also in der Spalte Q10...
  7. VBA - letzte nicht-leere Spalte

    in Microsoft Excel Hilfe
    VBA - letzte nicht-leere Spalte: Moin, liebe VBA-Spezis, mit Cells(99, Columns.Count).End(xlToLeft).Column bestimme ich die Spaltenzahl der letzten benutzten Zelle in Zeile 99. Soweit, so klar. Nun habe ich aber Formeln in...
  8. Summieren farbiger Zahlen anhand des Farbcodes ohne VBA

    in Microsoft Excel Hilfe
    Summieren farbiger Zahlen anhand des Farbcodes ohne VBA: Hallo liebes Forum, welche Formel muss ich eingeben, wenn ich farbige Ziffern (z.B. rot = Farbcode 3; grün = 4) addieren möchte. Danke im voraus für die schnelle Antwort Gruß mfkathie
  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