Warum das hilfreich ist

Weil Du nicht jeden Mitarbeitenden zur Formel in Zelle D14 briefen willst.
Oder weil jemand fragt: „Was macht denn die Formel da?“
Oder: „Warum ist hier eine Null?“

Mit einer kleinen Chatfunktion im Excel-Formular kannst Du GPT direkt fragen lassen.
Zelle anklicken → Erklärung bekommen.
In natürlicher Sprache.

Was die Funktion leisten soll

  • Aktuelle Zelle erkennen
  • Zellwert und/oder Formel auslesen
  • Frage formulieren (z. B. „Was macht diese Formel?“)
  • GPT-Antwort anzeigen – im eigenen UserForm

Voraussetzungen

  • Excel mit VBA
  • OpenAI API-Key
  • UserForm mit einem Textfeld + Button

Schritt 1: UserForm vorbereiten

Erstelle eine UserForm namens frmGPTChat.

ElementNameTyp
TextfeldtxtFrageTextBox
TextfeldtxtAntwortTextBox (Multiline, ScrollBars)
ButtonbtnSendenCommandButton

Setze txtAntwort.MultiLine = True, ScrollBars = fmScrollBarsVertical.

Schritt 2: Zellinhalt und Formel holen

Function HoleZellenInfo() As String
    Dim zelle As Range
    Set zelle = ActiveCell

    Dim inhalt As String
    Dim formel As String

    inhalt = CStr(zelle.Value)
    formel = zelle.Formula

    HoleZellenInfo = "Wert: " & inhalt & vbCrLf & "Formel: " & formel
End Function

Schritt 3: API-Aufruf an GPT

Function SendeAnGPT(frage As String) As String
    Dim http As Object
    Dim apiKey As String
    Dim json As String

    apiKey = "DEIN_API_KEY"

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

    Set http = CreateObject("MSXML2.ServerXMLHTTP")
    http.Open "POST", "https://api.openai.com/v1/chat/completions", False
    http.setRequestHeader "Content-Type", "application/json"
    http.setRequestHeader "Authorization", "Bearer " & apiKey
    http.Send json

    SendeAnGPT = ExtrahiereGPTAntwort(http.responseText)
End Function

Schritt 4: JSON-Antwort extrahieren

Function ExtrahiereGPTAntwort(json As String) As String
    Dim sc As Object
    Set sc = CreateObject("ScriptControl")
    sc.Language = "JScript"
    sc.AddCode "function parse(j){return JSON.parse(j).choices[0].message.content;}"
    ExtrahiereGPTAntwort = sc.Run("parse", json)
End Function

Schritt 5: Button im Formular verknüpfen

Private Sub btnSenden_Click()
    Dim eingabe As String
    Dim antwort As String

    eingabe = txtFrage.Text
    If eingabe = "" Then
        MsgBox "Bitte eine Frage eingeben."
        Exit Sub
    End If

    antwort = SendeAnGPT(eingabe)
    txtAntwort.Text = antwort
End Sub

Schritt 6: UserForm starten mit Zellbezug

Sub StarteGPTChat()
    Dim info As String
    info = HoleZellenInfo()

    frmGPTChat.txtFrage.Text = "Erkläre bitte Folgendes: " & vbCrLf & info
    frmGPTChat.txtAntwort.Text = ""
    frmGPTChat.Show
End Sub

Was Du damit machen kannst

AnwendungsfallBeispielfrage
Formel erklären„Was macht diese Formel in E14 genau?“
Wert prüfen„Warum kommt hier ein negativer Wert raus?“
Zellkontext beschreiben lassen„Wofür könnte dieser Wert in B7 stehen?“
Inhalt umformulieren„Formuliere diesen Satz in geschäftlicher Sprache.“

Erweiterungsmöglichkeiten

  • Chatverlauf im Sheet protokollieren
  • Auswahl, ob Formel oder Zellwert übergeben wird
  • Sprache umschalten per Dropdown
  • Antwort per Button in Kommentar schreiben

Was Du beachten musst

  • GPT sieht nur, was Du ihm gibst – keine Referenz auf andere Zellen ohne Kontext
  • Formelparser in GPT ist gut, aber nicht unfehlbar
  • Längere Antworten kannst Du im Textfeld besser mit Scrollbars anzeigen
  • Makros nur in .xlsm speichern

„Excel kann rechnen. GPT erklärt, warum.“

Wenn Du sowas im Projekt brauchst – ich helf Dir beim Einbauen.
Ohne Add-In. Direkt mit Bordmitteln. Verständlich.

Tags:

No responses yet

Schreibe einen Kommentar

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