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. Automatische Nummerierung einzelner Wörter in Fliesstext

    in Microsoft Word Hilfe
    Automatische Nummerierung einzelner Wörter in Fliesstext: Hallo liebe Word-User Ich habe mich im Forum angemeldet, da ich momentan meine Abschlussarbeit schreibe und eine gewünschte Funktion nach längerem googlen und ausprobieren leider nicht gefunden...
  3. Blattnamen automatisch ändern mit Zellbezug auf anders Blatt

    in Microsoft Excel Hilfe
    Blattnamen automatisch ändern mit Zellbezug auf anders Blatt: Hallo, ich möchte meine Blätter automatisch umbenennen lassen. Das erste Blatt nennt sich „Übersicht“ dort möchte ich die Namen der anderen Blätter eingeben. Die Namen werden aber regelmäßig...
  4. Zeitstempel automatisch einfügen

    in Microsoft Excel Hilfe
    Zeitstempel automatisch einfügen: Hallo, ich brauche Eure Hilfe. In meiner Excel-Tabelle habe ich zwei Tabellenblätter. Nun würde ich gerne, wenn Blatt1 geändert wird, das Änderungsdatum in Blatt2 Zeile H1 einfügen. Kann mir da...
  5. Bei Korrelation von zwei Reihen (die zweite Reihe automatisch verschieben)

    in Microsoft Excel Hilfe
    Bei Korrelation von zwei Reihen (die zweite Reihe automatisch verschieben): Guten Tag liebe Community, als absoluter Excel-Anfänger habe ich die Frage wie ich folgendes Problem am besten löse. Gegeben sind zwei Datenreihen (zb Spalte B und C), bei diesen soll der...
  6. Register automatisch aus Zelle benennen

    in Microsoft Excel Hilfe
    Register automatisch aus Zelle benennen: Hallo, ich habe eine Mappe mit rund 200 Tabellenblättern. In die Zelle A1 wird über die Formel ='Datenblatt'!F2 der Name des Tabellenblattes gezogen.. also aus einer externen Tabelle im...
  7. Status von Aufgaben nach bestimmter Zeit automatisch zurücksetzen

    in Microsoft Teams Hilfe
    Status von Aufgaben nach bestimmter Zeit automatisch zurücksetzen: Hallo zusammen, in einem Team ist eine Registerkarte mit Aufgaben angelegt. Die Aufgaben müssen immer nach einer bestimmten Zeit, nachdem sie erledigt wurden, erneut durchgeführt werden. Gibt es...
  8. Automatisches Inhaltsverzeichnis verschoben - dringend

    in Microsoft Word Hilfe
    Automatisches Inhaltsverzeichnis verschoben - dringend: Hallo, ich habe ein Problem bzgl. des automatischen Inhaltsverzeichnisses - ich muss dringend ein Projekt einreichen und ich kriege es einfach nicht in den Griff. Auf der ersten Ebene wird IMMER...
  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