Ergebnis 1 bis 3 von 3
  1. #1
    Registriert seit
    19.08.2007
    Beiträge
    120

    Worddokument als PDF speichern und mit Outlook versenden

    Hallo zusammen

    Ich «darf/muss» erstmals in Word ein Makro programmieren.

    Ich habe ein Worddokument das ich nach dem Ausfüllen als PDF speichere und versenden muss.
    Mit einem Makro wandle ich das bestehende Dokument in ein PDF File um und speichere dies mit folgendem Makro:

    Code:
    Sub PDF_Speichern()
    
    Windows("Test ABC.docx").Activate
    Dim strDateiname As String
    Dim Pfad As String
    Dim strPDF As String
    Pfad = "Z:\Test\Testfile\Download"
    strDateiname = Format(Date, "dddd/DD/MMM/YYYY/ ") & Format(Time, "hh.mm.ss.")
    strPDF = Pfad & "" & strDateiname & "pdf"
    ActiveDocument.ExportAsFixedFormat OutputFileName:=strPDF, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
    wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
    IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
    wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
    True, UseISO19005_1:=False
    
    End Sub
    Wie ersichtlich kann ich damit jede Sekunde ein neues File erstellen und speichern.
    Das funktioniert alles zufriedenstellend. Nun möchte ich dieses PDF aber gleichzeitig via Outlook 365 versenden und hier stosse ich an meine Grenzen.
    Ich kriege es nicht hin, dass ich das File als Anhang versenden kann, zumal sich der Name ja immer unterscheidet. Viele Infos in Netz drehen sich in diesem Fall um Excel und da habe ich das machen können, aber im Word funktioniert es auch nach X Versuchen nicht.

    Ich möchte mit einem Makro das Worddukument in ein PDF umwandeln, das PDF mit dem Outlook versenden und das Worddokument ohne speichern wieder schliessen.

    Danke für eure Hilfe
    cesar
    Geändert von Gaby Salvisberg (09.04.2019 um 14:40 Uhr)

  2. #2
    Registriert seit
    09.08.2007
    Beiträge
    266
    Grüezi Cesar

    Ich «darf/muss» erstmals in Word ein Makro programmieren.
    Caesar ist dabei, den Rubikon zu überschreiten!

    Ich habe ein Makro, das bei mir macht, was Du gerne hättest. Ich arbeite allerdings mit Word/Office 2013. Ob das mit der Version 365 auch so funktioniert wie in der älteren, weiss ich nicht.

    Als erstes musst Du folgendes machen:

    "Da wir im Makro auch Objekte aus Outlook ansprechen, muss sichergestellt werden, dass dies VBA bekannt ist. Um dies zu überprüfen, klicken Sie (im VBA-Explorer) auf Extras/Verweise und kontrollieren dort, ob der Punkt «Microsoft Outlook 11.0 Object Library» aktiviert ist (die Nummer ist abhängig von der Outlook Version). Ist dies der Fall, können Sie loslegen. Ansonsten suchen Sie den erwähnten Punkt in der Liste und setzen den Haken." - Ich bei mir selber habe aktiviert: «Microsoft Office 15.0 Object Library». Da kenne ich mich nicht so aus.

    Dieser Hinweis aus dem PCTipp stammt zwar von 2007, ist aber meines Wissens nach wie vor aktuell.
    https://www.pctipp.ch/tipps-tricks/k...forcedesktop=1

    Dann kannst Du Dein Makro PDF_Speichern() ergänzen; vor "End Sub" fügst Du folgendes ein.

    Code:
    Dim Outlook As Object
    Dim Mail As Object
    Dim Att As Object
    
    Set Outlook = GetObject(, "outlook.application")
    Set Mail = Outlook.CreateItem(0)
    Set Att = Mail.Attachments.Add(strPDF)  ' Mail-Anhang
    Mail.To = "jemand@bluewin.ch"
    Mail.Subject = Att.DisplayName    ' Betreff mit dem Namen des Anhangs
    Mail.Display  ' Mail wird angezeigt, nicht direkt versandt.
    
    Windows("Test ABC.docx").Activate
        ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
    Dieser Makro-Teil erstellt ein Email mit dem PDF als Anhang, das Du als "strPDF" kreiert hast, und schliesst "Test ABC.docx", ohne es zu speichern. - Wichtig ist: Outlook muss geöffnet sein, bevor Du das Makro startest!

    In der Zeile
    Mail.To = "jemand@bluewin.ch"
    kannst Du die richtige Email-Adresse einsetzen oder die Zeile deaktivieren. Ebenso kannst Du "Mail.Subject" (den Betreff) ändern.

    Wie gesagt: Bei mir klappt das bestens. Ich hoffe, auch bei Dir. Grüsse Niclaus
    Geändert von weer (09.04.2019 um 18:58 Uhr)

  3. #3
    Registriert seit
    19.08.2007
    Beiträge
    120

    Hallo Niclaus

    Funktioniert super, genau das was ich gesucht habe. Kann ich super einfach in mein restliches Makro einbinden.
    Einmal mehr, einen herzlichen Dank an dich für die kompetente Hilfe.

    Gruss
    cesar

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •