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
Firma | Vorname | Nachname | Produkt | Status | |
---|---|---|---|---|---|
Nordtech | Anna | Meier | anna@nordtech.de | Cloud-Modul | Angebot offen |
Fischsoft | Jens | Thomsen | jens@fischsoft.de | Datenpaket XL | Kein 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.
No responses yet