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. Probleme mit dem automatisches Inhaltsverzeichnis

    in Microsoft Word Hilfe
    Probleme mit dem automatisches Inhaltsverzeichnis: Hallo zusammen, ich stehe vor dem Problem, dass ich in einem automatischen Inhaltsverzeichnis zwei unterschiedliche Darstellung von Seitenzahlen haben möchte. Ich versuche es unten zu...
  3. Änderung Titel Folie 1 für alle weiteren Folien übernehmen

    in Microsoft PowerPoint Hilfe
    Änderung Titel Folie 1 für alle weiteren Folien übernehmen: Hallo zusammen, ich habe eine Präsentation mit dem selben Titel für alle weitere Folien. Jetzt ändert sich daran jeden Monat nur die Monatsbezeichnung, z.B. aus April wird dann eben Mai....
  4. eingehende Emails über bestimmtes Konto automatisch weiterleiten

    in Microsoft Outlook Hilfe
    eingehende Emails über bestimmtes Konto automatisch weiterleiten: Hallo! Ich würde gerne eingehende Emails automatisch (z.B) aus Outlook heraus an eine bestimmte Zieladresse weiterleiten. Das Programm von unserem Steuerbüro akzeptiert Rechnungen nur von einer...
  5. Wie automatisch Word2016 cache löschen beim Exit?

    in Microsoft Word Hilfe
    Wie automatisch Word2016 cache löschen beim Exit?: Wie ich feststellen musste speichert mein Word2016 (unter Windows 10) eine Menge *.log Dateien unter C:\Users\<username>\AppData\Local\Temp\Diagnostics\Winword\ Wie kann ich Word anweisen diese...
  6. StartFenster wird nicht automatisch geöffnet

    in Microsoft Access Hilfe
    StartFenster wird nicht automatisch geöffnet: Hallo liebe Leute, ich frage mich warum das in den Optioneneingestellte Formular (frmStart) nicht sofort geöffnet wird, sondern aus einem Parameterfenster erst ausgewählt werden muß. Verwende ich...
  7. Fortlaufendes Datum im Kopf für je 2 Seiten

    in Microsoft Word Hilfe
    Fortlaufendes Datum im Kopf für je 2 Seiten: Hallo zusammen, und zwar würde ich gerne ein laufendes Datum in die Kopfzeile eines Word-Dokumentes setzen. Es sind jeweils 2 aufeinanderfolgende zusammengehörige Seiten mit einem Datum...
  8. Silbentrennung automatisch deaktivieren in blauem Text

    in Microsoft Word Hilfe
    Silbentrennung automatisch deaktivieren in blauem Text: Hallo Forum, ich hätte gerne eure Hilfe bei folgender Fragestellung: Ich erstelle in WORD häufig Tutorials zum Programmieren, üblicherweise in JAVA. Fließtext mit Erläuterungen und...
  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