Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Serienmail mit Excel - VBA

Forumthread: Serienmail mit Excel - VBA

Serienmail mit Excel - VBA
30.03.2015 15:43:22
Addi
Hallo Zusammen,
ich habe gehört man könnte eine Serien eMail mittels Excel VBA Programmierung erstellen.
Ich würde dies gern umsetzten...ich würde aus der Excel-Datenbank auch nur 3 variable Felder neben der Empfänger eMail-Adresse benötigen.
In der Datei stehen in Spalte A die Empfänger eMail Adressen (teilweise auch mehrere) - in Spalte B, C und D jeweils eine Info die im eMail Body integriert werden sollen. Als Cc soll eine fixe eMail Adresse hinterlegt werden können.
Der rest ist Standard Text.
Ach so und die Standardsignatur sollte auch drunter...
Habt Ihr hier eine Idee?
Vielen Dank und Gruß
Addi

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Serienmail mit Excel - VBA
30.03.2015 15:54:52
Klexy
Das sollte dir auf den richtigen Weg helfen:
Sub Mail_aus_Excel()
Dim olApp As Object
Dim WsShell
Set olApp = CreateObject("Outlook.Application")
Dim sAdress As Range, sSubject As Range, sBody As String
Set sAdress = Range("A1") 'Empfänger
Set sSubject = Range("B1") 'Betreff
sBody = Range("p33").Value 'Mailtext
Dim IntZeile As Integer
For IntZeile = 1 To 8
If UCase(Cells(IntZeile, 2)) = "OK" Then
With olApp.CreateItem(0)
.To = sAdress.Offset(IntZeile - 1, 0).Value 'Empfänger"
.Subject = sSubject.Offset(IntZeile - 1, 0).Value 'Betreff
.Body = sBody 'Mailtext
.ReadReceiptRequested = False 'Lesebestätigung aus
.Display 'Email anzeigen
End With
End If
Next
End Sub

Anzeige
AW: Serienmail mit Excel - VBA
30.03.2015 15:56:42
Klexy
Sorry, hab ein paar überflüssige Zeilen im Code vergessen.
Hier ist das benötigte Grundgerüst:
Sub Mail_aus_Excel()
Dim olApp As Object
Dim WsShell
Set olApp = CreateObject("Outlook.Application")
Dim sAdress As Range, sSubject As Range, sBody As String
Set sAdress = Range("A1") 'Empfänger
Set sSubject = Range("B1") 'Betreff
sBody = Range("p33").Value 'Mailtext
With olApp.CreateItem(0)
.To = sAdress.Offset(IntZeile - 1, 0).Value 'Empfänger"
.Subject = sSubject.Offset(IntZeile - 1, 0).Value 'Betreff
.Body = sBody 'Mailtext
.ReadReceiptRequested = False 'Lesebestätigung aus
.Display 'Email anzeigen
End With
End Sub

Anzeige
AW: Serienmail mit Excel - VBA
30.03.2015 16:17:40
Addi
Hallo Klexy,
...sorry leider komme ich damit nicht wirklich klar...dafür sind meine VBA Kenntisse wohl zu schwach...
...aber vielen Dank für Deine Hilfe.
Viele Grüße
Addi
;
Anzeige

Infobox / Tutorial

Serienmail mit Excel und VBA erstellen


Schritt-für-Schritt-Anleitung

Um eine Serienmail mit Excel und VBA zu erstellen, folge diesen Schritten:

  1. Öffne Excel und erstelle eine neue Arbeitsmappe.

  2. Gib die Daten ein:

    • Trage in Spalte A die Empfänger-E-Mail-Adressen ein.
    • In Spalte B, C und D kannst du die variablen Felder einfügen, die im E-Mail-Body erscheinen sollen.
    • Optional: In einer Zelle (z.B. P33) kannst du den Standardtext für die E-Mail eingeben.
  3. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  4. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  5. Kopiere den folgenden Code in das Modul:

    Sub Mail_aus_Excel()
       Dim olApp As Object
       Set olApp = CreateObject("Outlook.Application")
       Dim sAdress As Range, sSubject As Range, sBody As String
       Set sAdress = Range("A1") 'Empfänger
       Set sSubject = Range("B1") 'Betreff
       sBody = Range("P33").Value 'Mailtext
    
       Dim IntZeile As Integer
       For IntZeile = 1 To 8
           If UCase(Cells(IntZeile, 2)) = "OK" Then
               With olApp.CreateItem(0)
                   .To = sAdress.Offset(IntZeile - 1, 0).Value 'Empfänger
                   .Subject = sSubject.Offset(IntZeile - 1, 0).Value 'Betreff
                   .Body = sBody 'Mailtext
                   .ReadReceiptRequested = False 'Lesebestätigung aus
                   .Display 'Email anzeigen
               End With
           End If
       Next
    End Sub
  6. Führe das Makro aus:

    • Schließe den VBA-Editor und gehe zurück zu Excel.
    • Drücke ALT + F8, wähle das Makro Mail_aus_Excel aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: E-Mail wird nicht gesendet

    • Stelle sicher, dass Outlook korrekt eingerichtet ist und läuft. Das Makro benötigt eine funktionierende Outlook-Installation.
  • Fehler: Bereichsreferenz ist ungültig

    • Überprüfe, ob die Zellreferenzen korrekt sind (z.B. A1, B1, P33) und die Daten im richtigen Format vorliegen.
  • Fehler: Variablen nicht definiert

    • Achte darauf, dass du die Variablen korrekt deklariert hast. Du kannst die Option Explicit Zeile am Anfang deines Moduls hinzufügen, um sicherzustellen, dass alle Variablen definiert sind.

Alternative Methoden

Falls du keine VBA-Programmierung nutzen möchtest, gibt es auch andere Wege, um Serienmails zu versenden:

  • Mail Merge in Word: Du kannst Excel-Daten in ein Word-Dokument importieren und die Seriendruckfunktion verwenden. Diese Methode erlaubt es dir, eine Serienmail mit Anhängen zu erstellen, jedoch ist sie weniger flexibel als das VBA-Makro.

  • Drittanbieter-Tools: Es gibt verschiedene Tools, die die Erstellung von Serienmails aus Excel unterstützen, wie MailChimp oder SendinBlue. Diese bieten oft eine benutzerfreundliche Oberfläche und zusätzliche Funktionen.


Praktische Beispiele

Hier ein einfaches Beispiel für die Datenstruktur:

A (E-Mail) B (Betreff) C (Info1) D (Info2)
empfaenger1@example.com Test Betreff 1 Info A Info B
empfaenger2@example.com Test Betreff 2 Info C Info D

In der Zelle P33 könntest du den Text eingeben, der in jedem E-Mail-Body erscheinen soll, z.B.:

Hallo {Info1} {Info2},

das ist die Serienmail.

Viele Grüße,
Dein Name

Tipps für Profis

  • E-Mail mit Anhang: Um eine Serienmail mit Anhang zu erstellen, kannst du den Attachments.Add Befehl im VBA-Code verwenden.

    .Attachments.Add "C:\Pfad\zu\deinem\Anhang.pdf"
  • Fehlerprotokoll: Füge ein Protokoll hinzu, um gesendete und fehlgeschlagene E-Mails zu verfolgen. Dies kann helfen, Probleme schneller zu identifizieren.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Empfänger in einer Zeile eingeben?
Du kannst mehrere E-Mail-Adressen durch Semikolons trennen, z.B. email1@example.com; email2@example.com.

2. Kann ich die E-Mails automatisch senden, anstatt sie nur anzuzeigen?
Ja, ändere .Display in .Send, um die E-Mails direkt zu versenden.

3. Ist VBA auch in Excel Online verfügbar?
Nein, VBA ist nur in der Desktop-Version von Excel verfügbar. In Excel Online sind Makros nicht unterstützt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige