Warum das ĂŒberhaupt?

Du kennst das: Excel-Listen mit 100 Kontakten.
Jedem soll eine halbwegs persönliche E-Mail geschickt werden.
Immer gleich – aber eben nicht ganz.

Der Klassiker:

  • Angebot verschickt, aber keine Antwort
  • RĂŒckfrage zu einem bestimmten Produkt
  • Erinnerung an einen Erstkontakt

Das manuell zu schreiben, kostet Zeit.
Also machen wir das automatisch.
Per VBA. Mit GPT.

Was brauchst Du?

  • Excel ab 2016 mit aktivem Makrozugriff
  • Einen OpenAI API-Key
  • Eine Tabelle mit Kundendaten
  • Etwas Geduld beim Testen von Prompts

Beispiel fĂŒr eine Tabelle

FirmaVornameNachnameE-MailProduktStatus
NordtechAnnaMeieranna@nordtech.deCloud-ModulAngebot offen
FischsoftJensThomsenjens@fischsoft.deDatenpaket XLKein Kontakt

Deine Tabelle sollte in Excel genau so aufgebaut sein.
Die Ausgabe erfolgt spÀter in einer neuen Spalte daneben.

GPT-Prompt als Vorlage

Hier ein Beispiel-Prompt, der in der Praxis gut funktioniert:

Schreibe eine höfliche, aber direkte E-Mail an {Vorname} {Nachname} von {Firma}, weil noch kein Feedback zum {Produkt} eingegangen ist. Ziel: RĂŒckmeldung erhalten. Maximal 4 SĂ€tze.

Das wirkt knapp, zielgerichtet – und liefert brauchbare Ergebnisse.

GPT ĂŒber VBA abfragen

Public Function HoleGPTAntwort(prompt As String) As String
    Dim http As Object
    Dim json As String
    Dim result As String
    Dim apiKey As String

    apiKey = "sk-..." ' Dein API-Key hier

    Set http = CreateObject("MSXML2.XMLHTTP")

    json = "{""model"":""gpt-4"",""messages"":[{""role"":""user"",""content"":""" & Replace(prompt, """", "\""") & """}],""temperature"":0.7}"

    With http
        .Open "POST", "https://api.openai.com/v1/chat/completions", False
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Authorization", "Bearer " & apiKey
        .send json
        result = .responseText
    End With

    Dim startPos As Long, endPos As Long
    startPos = InStr(result, """content"":""") + 11
    endPos = InStr(startPos, result, """}")
    HoleGPTAntwort = Mid(result, startPos, endPos - startPos)
End Function

Achte darauf, dass Du deinen eigenen API-Key verwendest.
Und ja, die JSON-Auswertung ist ein bisschen gehackt. Reicht aber fĂŒr den Zweck.

Automatisiertes Makro zur Textgenerierung

Sub ErzeugeEmails()
    Dim zeile As Long
    Dim letzte As Long
    Dim prompt As String
    Dim text As String

    letzte = Cells(Rows.Count, 1).End(xlUp).Row

    For zeile = 2 To letzte
        prompt = "Schreibe eine höfliche, aber direkte E-Mail an " & _
                 Cells(zeile, 2) & " " & Cells(zeile, 3) & " von " & Cells(zeile, 1) & _
                 ", weil noch kein Feedback zum " & Cells(zeile, 5) & " eingegangen ist. Ziel: RĂŒckmeldung erhalten. Maximal 4 SĂ€tze."
        
        text = HoleGPTAntwort(prompt)
        Cells(zeile, 7).Value = text ' Ausgabe in Spalte G
        DoEvents
        Application.Wait Now + TimeValue("0:00:01") ' Wartezeit zur Sicherheit
    Next zeile
End Sub

Diese Schleife lÀuft alle Zeilen durch und schreibt die fertige E-Mail neben die Tabelle.
Spalte G muss natĂŒrlich leer sein – oder Du passt das an.

Worauf Du achten solltest

  • GPT schreibt brauchbare Texte, aber nicht fehlerfrei
  • Lies gegen, bevor Du verschickst
  • Lange Wartezeiten? → API-Limit erreicht
  • GPT mag saubere Prompts. Je klarer, desto besser

Ideen zur Erweiterung

  • Direktes Versenden per Outlook aus VBA
  • Integration in Power Automate
  • Kombination mit Serienbriefen in Word
  • Tracking des Versandstatus per Excel-Spalte

Also

Du brauchst keine 100 Mails mehr per Hand tippen.
Du brauchst eine Tabelle, ein paar Zeilen VBA – und den Mut, KI einfach mal machen zu lassen.

Tags:

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert