Excel VBA PDF Export an David

  • Hallo zusammen,


    leider finde ich in der Suche nichts.


    Ich habe in Excel ein Formular erstellt und möchte nun mittels einem Button, als per VBA, das Excelsheet per PDF an David senden.

    David möchte auch die Emailadresse aus einer Zelle, den Dateinamen des PDF aus einer verketten Funktion und einer Zelle, sowie den Betreff aus einer verketten Funktion und einer Zelle übernehmen.


    VBA für Outlook ist bekannt, aber funktioniert natürlich nicht mit David.


    Hat jemand eine Möglichkeit ?

  • Thomas

    Approved the thread.
  • Schau mal im David Client in der Hilfe unter "david Befehle" nach, dort findest du Beispiele unter "EMAIL" bzw. "ATTACH"


    z.B.

    @@EMAIL@@@@ANSI@@
    @@HTML@@ (Optional, nur wenn der Inhalt dann als HTML übergeben wird)
    @@NUMMER hans.mustermann@firma.de@@ @@BETREFF Betreff: Exceldatei ABC@@
    Sehr geehrter Herr ...,
    nachfolgend erhalten Sie die Datei ...@@ATTACH Exceldatei.xlsx, Preisliste, del@@ (Der Service Layer muss auf diesen Pfad zugreifen können, ansonsten unter DAVID\APPS\FAXWARE\OUT\API ablegen)Diesen Text kopierst du ein eine Textdatei, die du unter SERVERNAME\David\Import als z.B. Versand_Datum.eml ablegst. Diese wird dann von David eingelesen und verarbeitet (siehe Einstellungen unter David.Administrator > System > Erweitert > Services)

  • also für Outlook wäre doch dieses hier richtig, oder ?


    Sub test()
    Dim Mailadresse As String, Betreff As String

    Dim olApp As Object

    Set olApp = CreateObject("Outlook.Application")

    Mailadresse = VERKETTEN(Worksheets("Tabelle1").Range("A1:A4"))

    Betreff = VERKETTEN(Worksheets("Tabelle1").Range("B1"))

    Sheets("Tabelle2").ExportAsFixedFormat Type:=xlTypePDF, Filename:="D:\Test\Mappe1.pdf", _

    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

    With olApp.CreateItem(0)

    .to = Mailadresse

    .Subject = Betreff

    .Attachments.Add "D:\Test\Mappe1.pdf"

    .Display

    .Send

    End With

    Set olApp = Nothing


    Function Verketten(rng As Range) As String

    Dim strKette As String

    Dim Zelle As Range

    For Each Zelle In rng

    strKette = strKette & "; " & Zelle.Text

    Next Zelle

    Verketten = VBA.Right(strKette, Len(strKette) - 2)

    End Function

    End Sub

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!