Tutorial: Excel-Formular mit „Absenden“-Button erstellen und per E-Mail versenden
Hier ist ein ausführliches Tutorial, wie du in Excel ein ausfüllbares Formular erstellst und eine Schaltfläche einfügst, die das Formular automatisch per E-Mail versendet.
Excel bietet keine standardmäßige „Senden“-Funktion für Formulare. Um dies zu realisieren, nutzen wir eine Kombination aus den Entwicklertools und einem kleinen VBA-Skript (Makro).
Schritt 1: Das Formular-Layout erstellen
Bevor du die Technik einbaust, gestalte dein Formular.
- Öffne ein neues Excel-Arbeitsblatt.
- Erstelle Felder wie „Name“, „Datum“, „Anfrage“ usw.
- Tipp: Markiere die Eingabezellen farblich (z. B. hellblau), damit der Nutzer weiß, wo er etwas eintragen muss.
- Um das Formular professioneller zu machen, kannst du unter dem Reiter Ansicht die Gitternetzlinien ausschalten.
Schritt 2: Die Registerkarte „Entwicklertools“ aktivieren
Um Schaltflächen und Makros zu nutzen, benötigst du das Menüband für Entwickler.
- Klicke mit der rechten Maustaste auf eine beliebige Stelle im Menüband (oben).
- Wähle Menüband anpassen.
- Setze auf der rechten Seite ein Häkchen bei Entwicklertools.
- Klicke auf OK.
Schritt 3: Den „Absenden“-Button einfügen
- Gehe zum Reiter Entwicklertools.
- Klicke auf Einfügen und wähle unter ActiveX-Steuerelemente die Befehlsschaltfläche (Button).
- Ziehe mit der Maus die Schaltfläche an die gewünschte Stelle in deinem Formular.
- Rechtsklick auf den Button -> Eigenschaften.
- Ändere unter Caption den Text in „Formular absenden“.
- Schließe das Eigenschaften-Fenster.
Schritt 4: Den VBA-Code hinzufügen
Damit der Button weiß, was er tun soll (nämlich eine E-Mail senden), hinterlegen wir einen Code.
- Mache einen Doppelklick auf deinen neuen Button (du befindest dich nun im VBA-Editor).
- Kopiere den folgenden Code und füge ihn zwischen
Private Sub CommandButton1_Click()undEnd Subein:
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
' Nachrichtentext definieren
strbody = "Hallo," & vbNewLine & vbNewLine & _
"anbei erhältst du das ausgefüllte Formular." & vbNewLine & _
"Beste Grüße"
On Error Resume Next
With OutMail
.To = "deine-email@beispiel.de" ' <-- HIER DEINE E-MAIL EINTRAGEN
.CC = ""
.BCC = ""
.Subject = "Neues Formular eingegangen: " & Range("B2").Value ' Bezieht Betreff aus Zelle B2
.Body = strbody
.Attachments.Add Me.Parent.FullName ' Fügt die aktuelle Datei als Anhang hinzu
.Display ' Nutze .Send statt .Display, wenn die Mail sofort ohne Vorschau rausgehen soll
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
- Wichtig: Ändere im Code die Zeile
.To = "deine-email@beispiel.de"in deine tatsächliche E-Mail-Adresse. - Schließe das VBA-Fenster (einfach oben auf das X klicken).
Schritt 5: Den Entwurfsmodus verlassen
Damit der Button klickbar wird:
- Klicke im Reiter Entwicklertools auf Entwurfsmodus, um diesen zu deaktivieren.
- Jetzt ist der Button „scharf“ geschaltet.
Schritt 6: Die Datei richtig speichern
Da die Datei ein Makro (den VBA-Code) enthält, muss sie in einem speziellen Format gespeichert werden.
- Gehe auf Datei -> Speichern unter.
- Wähle als Dateityp unbedingt *Excel-Arbeitsmappe mit Makros (.xlsm)**.
- Speichere die Datei.
Funktionsweise testen
- Fülle deine Felder im Formular aus.
- Klicke auf den Button Formular absenden.
- Outlook öffnet sich automatisch, erstellt eine neue E-Mail mit der Excel-Datei im Anhang und trägt deine Zieladresse ein.
Hinweis: Dieses Tutorial setzt voraus, dass Microsoft Outlook auf dem Computer des Nutzers installiert und eingerichtet ist. Excel nutzt die Outlook-Schnittstelle, um die Mail zu generieren.