Eigene Funktion für den Bruttobetrag erstellen (VBA)
Mit einer benutzerdefinierten Funktion (UDF, User Defined Function) erweiterst du Excel um eigene Berechnungen, die wie eine normale Formel aufgerufen werden. Ein klassisches Beispiel: aus Nettobetrag und Mehrwertsteuersatz automatisch den Bruttobetrag berechnen.
VBA-Funktion anlegen
- Öffne den VBA-Editor mit Alt+F11.
- Klicke im Projekt-Explorer mit rechts auf deine Arbeitsmappe → Einfügen → Modul.
- Trage folgenden Code ein:
Function Bruttobetrag(Netto As Double, MwstSatz As Double) As Double
Bruttobetrag = Netto * (1 + MwstSatz)
End Function
- Speichere die Arbeitsmappe als Excel-Arbeitsmappe mit Makros (.xlsm) – ohne dieses Format geht der Code verloren.
- Wechsle zurück zu Excel und nutze die Funktion wie jede andere:
=Bruttobetrag(A2;B2).
| A | B | C | |
|---|---|---|---|
| 1 | Netto | MwSt.-Satz | Brutto |
| 2 | 100,00 € | 19% | 119,00 € |
| 3 | 50,00 € | 7% | 53,50 € |
Makros sind standardmäßig deaktiviert. Beim Öffnen einer .xlsm-Datei musst du sie über die gelbe Sicherheitsleiste („Inhalt aktivieren") ausdrücklich zulassen – sonst funktioniert die Funktion nicht.
Alternative ohne VBA: LAMBDA (Excel 365)
Mit LAMBDA lässt sich dieselbe Logik ganz ohne Makro und ohne .xlsm-Format abbilden – als benannte Formel im Namens-Manager (Strg+F3):
=LAMBDA(netto;satz; netto*(1+satz))
Diesen Ausdruck legst du unter einem Namen wie BRUTTO an und rufst ihn dann wie eine normale Funktion auf: =BRUTTO(A2;B2). Vorteil: funktioniert auch in .xlsx-Dateien und für Nutzer ohne Makro-Freigabe.
Häufige Fehler
- #NAME? – die Funktion ist nicht verfügbar, weil die Datei nicht im
.xlsm-Format gespeichert oder Makros nicht aktiviert wurden. - Falscher MwSt.-Satz – trage den Satz als Prozentwert (Zelle mit %-Format) oder als Dezimalzahl (
0,19) ein, nicht als „19". - Funktion fehlt in anderer Arbeitsmappe – UDFs gelten nur innerhalb der Datei, in der sie definiert wurden, es sei denn, sie liegen in einer persönlichen Makroarbeitsmappe (PERSONAL.XLSB).