Office: Automatische Mailerzeugung (inkl. Anhang!) per Excel-VBA bei thunderbird

Helfe beim Thema Automatische Mailerzeugung (inkl. Anhang!) per Excel-VBA bei thunderbird in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich bastel jetzt schon eine Weile an einem Makro, das automatisiert eine Mail in thunderbird erzeugt. Diese Mail soll Zeilenumbrüche... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von bauzi, 9. November 2014.

  1. bauzi User

    Automatische Mailerzeugung (inkl. Anhang!) per Excel-VBA bei thunderbird


    Hallo zusammen,

    ich bastel jetzt schon eine Weile an einem Makro, das automatisiert eine Mail in thunderbird erzeugt. Diese Mail soll Zeilenumbrüche enthalten (daher kommt auch der etwas umständlich erscheinende body-Aufbau). Das Ganze funktioniert echt gut, nur an einer Stelle hakt es noch: Ich bekomme keinen Anhang an die Mail.

    Ich vermute stark, dass es ein Syntax-Problem ist (der Code ist das Ergebnis mehrfacher google-Recherchen, da ich selbst kein Programmiervollprofi bin..). Hat jemand eine Ahnung, warum der Code nicht funktioniert (ich verzweifle so langsam!):

    Code:
    Sub final()
       Dim strPath As String
       Dim strTo As String
       Dim strSubject As String
       Dim strBody As String
       Dim strCommand As String
       Dim StartZeile As Integer
       Dim pdfPfad As String
       Dim strAttach As String
    
    pdfPfad = "file:///C:/Anhangordner/" & ActiveSheet.Name & ".pdf"
    
       strPath = "C:\Program Files (x86)\Mozilla Thunderbird\Thunderbird.exe "
       strTo = "mailto:" & ActiveSheet.Cells(2, 6)
       strSubject = "?Subject=" & Chr$(34) & Sheets(1).Cells(1, 2) & Chr$(34)
       
       If ActiveSheet.Cells(1, 4) = 0 Then
            StartZeile = 35
        Else
            If ActiveSheet.Cells(1, 4) < 0 Then
                StartZeile = 3
                Sheets(1).Cells(1, 3) = -ActiveSheet.Cells(1, 4) 'aktuellen Wert in den Mailtext einbringen
            Else
                StartZeile = 19
                Sheets(1).Cells(1, 3) = ActiveSheet.Cells(1, 4) 'aktuellen Wert in den Mailtext einbringen
            End If
        End If
            
    'Text umgebrochen aus einem Arbeitsblatt holen
            strBody = "&body=Moin " & Chr$(34) & ActiveSheet.Cells(1, 6) & ". " & Sheets(1).Cells(StartZeile, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 1, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 2, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 3, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 4, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 5, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 6, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 7, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 8, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 9, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 10, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 11, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 12, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 13, 2) & Chr$(34) & _
                        "&body=" & Chr$(34) & Sheets(1).Cells(StartZeile + 14, 2) & Chr$(34)
            
            strAttach = "attachment=" & pdfPfad
    
    
       strCommand = strPath & " -compose " & Chr$(34) & strTo & strSubject & strBody & strAttach
       Call Shell(strCommand, vbNormalFocus)
    End Sub
    

    Ich hoffe, jemand hat eine Idee. Danke schon einmal im Voraus..
     
  2. maninweb
    maninweb MVP für Microsoft Excel
    Hallo bauzi,

    ungetestet, aber Du könntest strAttach = "&attachment=" & pdfPfad probieren.

    Gruß
     
    maninweb, 9. November 2014
    #2
  3. bauzi User
    Hallo maninweb,

    danke für deine Antwort! Hatte ich schon probiert. Leider ohne Erfolg :/
     
  4. maninweb
    maninweb MVP für Microsoft Excel

    Automatische Mailerzeugung (inkl. Anhang!) per Excel-VBA bei thunderbird

    Hallo bauzi,

    laut der englischen Seite hier http://kb.mozillazine.org/Command_line_arguments_-_Thunderbird sind die Trennzeichen für Argumente Kommata statt dem &-Zeichen. Also z.B. ...,body=...,attachment=... Allerdings kann es dann sein, dass Du bei Thunderbird die Mail nicht automatisch versendest bekommst. Als Alternative wäre vielleicht CDO eine Möglichkeit. Siehe den Abschnitt 'Mail from Excel with CDO' hier bei Ron de Bruin http://www.rondebruin.nl/win/section1.htm (auch in Englisch) Ausprobiert habe ich das alles jetzt nicht.

    Gruß
     
    maninweb, 10. November 2014
    #4
  5. bauzi User
    Hallo maninweb,

    danke für deine weitere Bemühung! Auf CDO würde ich nur im Notfall zurückgreifen wollen. Zudem stehe ich so dermaßen knapp vor dem Ziel, dass es auch schade wäre :D

    Der Kommata-Tipp hat leider nicht funktioniert.

    Noch einmal anders ausgedrückt: Mein im Ursprungsbeitrag geposteter Code funktioniert einwandfrei (Empfänger landet in der Empfängerzeile von thunderbird, body im body...) bis auf den dummen Anhang. Der wird nicht angehängt, sondern es steht einfach nur unten in der Mail als Text "attachment=file:///C:/Anhangordner/" & ActiveSheet.Name & ".pdf"".

    Andersherum bekomme ich mit folgendem Code problemlos den Anhang untergebracht, aber hier hapert es mit den Zeilenumbrüchen (deswegen bin ich bei der Alternative gelandet):

    Code:
    Sub Email_erzeugen()
    Dim pdfPfad As String
    
    pdfPfad = "file:///C:/Anhangordner/" & ActiveSheet.Name & ".pdf"
    '",subject='Monatsübersicht',body='Moin " & ActiveSheet.Cells(1, 6) & ",%0D%0A" & Sheets(1).Cells(2, 2) & "'" & _
    
      strTh = "C:\Program Files (x86)\Mozilla Thunderbird\Thunderbird.exe "
      strCommand = "-compose to=" & ActiveSheet.Cells(2, 6) & _
        ",subject='Monatsübersicht',body='Hallo" & Chr(34) & "Welt'" & _
        ",attachment=" & pdfPfad
      Shell strTh & strCommand, vbNormalFocus
    End Sub
    
    Die Wahrheit liegt wahrscheinlich irgendwo in der Mitte. Aber ich verstehe leider noch nicht vollständig, wo das Problem ist :/


    Besten Gruß,
    bauzi
     
    Zuletzt bearbeitet: 30. November 2014
  6. maninweb
    maninweb MVP für Microsoft Excel
    Hallo bauzi,

    was mir noch einfallen würde, wäre statt den Text-Zeilenumbrüchen, HTML zu nehmen. Beispiel:

    subject='___anonymisiert___Monatsübersicht',body='< p >Hallo< /br>Welt ... Text < /br> ... Text < /br>< / p ><!-- p -->'" & ",attachment=" & pdfPfad

    Hinweis: bei den < p > und < / p ><!-- p -->bitte die Leerzeichen entfernen, beim br vor dem Slash aber
    drin lassen, der Editor hier im Forum interpretriert das.

    Gruß
     
    Zuletzt bearbeitet: 1. Dezember 2014
    maninweb, 11. November 2014
    #6
  7. miriki Erfahrener User
    Moinsens!

    Was genau bei den Umbrüchen funktioniert denn nicht? Werden die einfach ignoriert oder wird stattdessen irgendein anderes Zeichen angezeigt?

    Ich würde mit "Wagenrücklauf" Chr$(13) und "Zeilenvorschub" CHR$(10) und einer Kombination daraus (auch Reihenfolge!) experimentieren:
    Code:
    LineBreak = Chr$(13) & Chr$(10)
    [...],body='Moin " & ActiveSheet.Cells(1, 6) & "," & LineBreak & Sheets(1).Cells(2, 2) & "'" & _ [...]
    Es wäre nicht ungewöhnlich, wenn der Zeilenumbruch nur Chr$(10) alleine wäre...

    Gruß, Michael
     
  8. bauzi User

    Automatische Mailerzeugung (inkl. Anhang!) per Excel-VBA bei thunderbird

    Jawollja! Die HTML-Lösung funktioniert!!!


    Mit der Chr$(10)- bzw. (13)-Geschichte hatte ich vorher schon einmal herumgespielt, das hat leider nicht geklappt.


    Tausend Dank euch beiden, endlich ist das Ding startklar :)
     
  9. Blaeh Neuer User
    Hallo,

    ich habe ein ähnlich, kleines Problme und will keinen neune thread deswegen aufmachen.

    Ich will aus Access einen bericht in eine PdF datei umwandeln, funktioniert auch soweit. Jetzt soll die datei aber noch als Anhang in einer Thunderbird mail hinzugefügt werden:

    Code:
    Private Sub Befehl162_Click()
      Dim MyPath, MyFilename As String
      MyPath = "E:\pdf_rechnung\AP"
      MyFilename = "r1.pdf"
      DoCmd.OpenReport "Rechnung", acViewPreview, "RechnungDruck"
      DoCmd.OutputTo acOutputReport, "", acFormatPDF, MyPath & MyFilename, True
      DoCmd.Close acReport, "Rechnung"
      
      Befehl162.HyperlinkAddress = "mailto:" & Nz(Text161.value, "")
    
    Thunderbird öffnet sich schon automatisch, und die PdF wird richtig erzeugt und den Speicherort kann ich auch auswählen.
     
Thema:

Automatische Mailerzeugung (inkl. Anhang!) per Excel-VBA bei thunderbird

Die Seite wird geladen...
  1. Automatische Mailerzeugung (inkl. Anhang!) per Excel-VBA bei thunderbird - Similar Threads - Automatische Mailerzeugung inkl

  2. Werte automatisch übernehmen

    in Microsoft Access Hilfe
    Werte automatisch übernehmen: Hallo, ich habe schon wieder ein Problem bei dem ich eure Hilfe brauchen könnte. Vereinfacht dargestellt möchte ich einen Wert aus einer Tabelle automatisch in eine andere Tabelle speichern. Ich...
  3. Automatisches Ausfüllen: Vier-Tage-Woche

    in Microsoft Excel Hilfe
    Automatisches Ausfüllen: Vier-Tage-Woche: Hallo zusammen! Ich würde gerne mal wissen, wie ich es hinbekomme, das ich eine Spalte Datumsbasiert auf der Vier-Tage-Woche automatisch ausfüllen lassen kann anhand der Benutzerdefinierten...
  4. Werte per VBA automatisch übertragen und fortlaufend speichern

    in Microsoft Excel Hilfe
    Werte per VBA automatisch übertragen und fortlaufend speichern: Moin, ich habe da mal eine bitte: wie kann ich diesen Code dazu bringen von einer bestimmten Datei automatische Werte in eine andere Datei kopiert? Ich kann zwar die Werte in derselben Tabelle...
  5. Dynamische Tabellen mit automatischer Aktualisierung

    in Microsoft Excel Hilfe
    Dynamische Tabellen mit automatischer Aktualisierung: Hallo in die Runde! Vorab schon mal vielen Dank für alle Mühen und die Hilfe! Ich habe folgendes Anliegen: Ich habe eine Geräteliste als Excel Datei mit einigen verschiedenen Tabellenblättern...
  6. Arbeitszeiten Pausen automatisch abziehen

    in Microsoft Excel Hilfe
    Arbeitszeiten Pausen automatisch abziehen: Hallo Zusammen Ich möchte eine Tabelle erstellen, in welcher die gesetzlichen Pausen automatisch abgezogen werden. Das heisst ab einer gewissen Anzahl Stunden sollen Automatisch 30min oder 1h...
  7. Zeilen in Excel automatisch alle paar Zeilen einfügen

    in Microsoft Excel Hilfe
    Zeilen in Excel automatisch alle paar Zeilen einfügen: Hallo, ich bin über die Googlesuche hier gelandet und dachte ich hätte auch die Lösung für mein Problem schon gefunden. Doch der Beitrag war von 2006 und schon beim Eingeben in MS Office...
  8. Formelbezug automatisch erweitern

    in Microsoft Excel Hilfe
    Formelbezug automatisch erweitern: Hallo Liebe Forenmitglieder, ich hoffe sehr, es geht Euch allen gut. Kennt Ihr eine Möglichkeit, den Bereich z. B. in folgender Formel automatisch z. B. auf $AM$148 oder $AN$148 zu erweitern,...
  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