[Excel] Tabelleninhalt Zeilenweise per E-Mail versenden

Ultraflip

Erfahrenes Mitglied
Hallo Forum,

um Datensätze die in Excel geliefert werden besser verarbeiten zu können, würde ich gerne gelieferte Tabellen mit Zeilenweise Datensätzen an ein Postfach einzeln schicken lassen.

Also soll von einer Tabelle mit z. B. 10 Spalten und 20 Zeilen nach Klick auf einen Button(oder Tastenkombination, etc.) 20 Mails generiert und an immer das gleiche Postfach gesendet werden, die im Inhalt die 10 Werte enthalten (im Bestcase auch noch eine Erklärung) also z. B.:

Mailinhalt
Beschreibung 1: [Zeile 1, Spalte 1]
Beschreibung 2: [Zeile 1, Spalte 2]
Beschreibung 3: [Zeile 1, Spalte 3]
etc.


Die Zeilenanzahl variiert immer.

Im Netz habe ich folgendes Beispiel gefunden:
http://www.office.gmxhome.de/_excel_outlook.htm#Serienmail_ohne_Attachment

Leider schaffe ich nicht, dass nach meinen Bedürfnissen anzupassen :(

Kann mir hier jemand weiterhelfen?

Vielen Dank und LG
Ultraflip
 
Wie weit hast du es denn zum Laufen gekriegt bzw. was klappt bei dir nicht.

Hier sind auch noch ein paar Beispiele wie man mit Excel Mails verschicken kann, vielleicht kommst du damit ja besser klar.
 
Hallo zusammen,

soweit so gut. Folgendes Makro läuft schon perfekt:

Code:
Sub Excel_Serienmail_via_Outlook_Senden()
    Dim OutApp As Object, Mail As Object
    Dim i As Integer
    Dim Nachricht
    Dim AnzahlZeilen As Integer
    AnzahlZeilen = Range("A65536").End(xlUp).Row
    For i = 2 To AnzahlZeilen
    'Variablen müssen bei jeder Schleife neu initalisiert werden
        Set OutApp = CreateObject("Outlook.Application")
        Set Nachricht = OutApp.CreateItem(0)
        With Nachricht
            .To = "test@test.de" 'Adresse"
            .Subject = Cells(i, 1) 'Betreffzeile
            .Body = Cells(1, 2) + ": " + Cells(i, 2) + Chr(10) + Cells(1, 3) + ": " + Cells(i, 3)   'Sendetext"
            .Display
            SendKeys "%s", True
        End With
        'Variablen zurücksetzen sonst gehts nicht
        Set OutApp = Nothing 'CreateObject("Outlook.Application")
        Set Nachricht = Nothing 'OutApp.CreateItem(0)
        Application.Wait (Now + TimeValue("0:00:03"))
    Next i
End Sub

Einmal "schöner Wohnen" ist aber noch offen: Ich würde gerne die Zeilen im Body durch eine Schleife erstellen lassen (also mit einer Schleife in der Schleife).

Beispiel mit Zählvariable "k" für die Spalten:
Code:
For k = 2 To AnzahlSpalten
 .Body = Cells(1, k) + ": " + Cells(i, k) + Chr(10)

Um die Anzahl der Spalten zu ermitteln würde ich

Code:
    Dim AnzahlSpalten As Integer
    AnzahlSpalten = Cells(1, Columns.Count).End(xlToLeft).Column

benutzen. Aber wie bekomme ich das ganze noch in den Mail-Body? Evtl. über eine Funktion? :(

Vielen Dank und LG
Ultraflip
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück