Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro in Formel einbinden

Makro in Formel einbinden
03.08.2006 14:32:40
Wrobel
Hi Excel - Fan´s,
nehme das erste ( www.herber.de/forum/messages/788121.html ) bzw. zweite mal überhaupt an einem Forum teil... Man findet ja sonst alles im Netz was man brauch.
Allerdings bin ich jetzt total überfragt und im Netz finde ich auch nichts vernünftiges, aber vielleicht habt ihr ja ´ne Lösung für meine folgende Problemstellung.
Ist es möchlich, z.B. in eine Wenn-Formel ein Makro einzubinden?
Bsp.: =wenn(a1=1;(Makro ausführen);0)
Vielen Dank im Voraus!
Schönen Gruß
André
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro in Formel einbinden
03.08.2006 14:40:03
Andi
Hi,
ja, das geht, wenn das Makro keine sub ist, sondern eine Function
zB folgendes in ein Standard-Modul:

Function test()
MsgBox "Hallo"
End Function

und folgende Formel in die Tabelle:
=WENN(A1=1;test();"")
Wenn Du in A1 ne 1 reinschreibst, dann erscheint die MsgBox.
Schönen Gruß,
Andi
Anzeige
AW: Makro in Formel einbinden
03.08.2006 15:16:36
Wrobel
So bin eben den Tipp von Andi nachgegangen und habe in der Zelle nachdem ich in a1 eine 1 gesetzt hatte nur die Rückmeldung #NAME? bekommen.
Habe im VB Editor in Tabelle1 das Makro von Andi hineinkopiert und gespeichert.
Die Wenn Formel habe ich ebenfalls kopiert.
Was habe ich falsch gemacht?
Bin echt nicht so fit in Makro´s, versuche aber mich langsam damit vertraut zu machen.
Anzeige
AW: Makro in Formel einbinden
03.08.2006 15:21:34
u_
Hallo,
die Funktion muss in ein allgemeines Modul.
Gruß
Lesen gefährdet die Dummheit
;
Anzeige
Anzeige

Infobox / Tutorial

Makro in Formel einbinden: Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

Um ein Makro in eine Formel einzubinden, befolge diese Schritte:

  1. Öffne den Visual Basic-Editor (VBA): Drücke ALT + F11.

  2. Füge ein allgemeines Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  3. Schreibe die Funktion: Füge den folgenden Code in das neue Modul ein:

    Function test()
       MsgBox "Hallo"
    End Function
  4. Schließe den VBA-Editor: Drücke ALT + Q oder schließe das Fenster.

  5. Verwende die Funktion in Excel: Gehe zu einer Zelle und schreibe die Formel:

    =WENN(A1=1;test();"")
  6. Teste die Funktion: Setze in Zelle A1 den Wert 1. Die MsgBox sollte erscheinen.


Häufige Fehler und Lösungen

  • Fehler: #NAME?
    Lösung: Stelle sicher, dass die Funktion im allgemeinen Modul gespeichert ist, nicht im Tabellenmodul. Überprüfe auch die Schreibweise der Funktion in der Formel.

  • Fehler: Keine MsgBox erscheint
    Lösung: Überprüfe, ob A1 tatsächlich den Wert 1 enthält. Wenn du eine andere Zelle verwendest, passe die Formel entsprechend an.


Alternative Methoden

Wenn Du keine MsgBox verwenden möchtest, kannst Du auch eine Funktion erstellen, die einen Wert zurückgibt. Beispiel:

Function test() As String
    test = "Hallo"
End Function

Verwende dann in Excel:

=WENN(A1=1;test();"")

Dies gibt "Hallo" in der Zelle zurück, wenn A1 den Wert 1 hat.


Praktische Beispiele

  1. Beispiel für eine einfache Berechnung:

    Function Quadrat(x As Double) As Double
       Quadrat = x * x
    End Function

    In Excel verwendest Du dann:

    =WENN(A1>0;Quadrat(A1);"Ungültig")
  2. Beispiel für die Nutzung in einer Bedingung:

    Function IstGerade(x As Integer) As Boolean
       IstGerade = (x Mod 2 = 0)
    End Function

    Und in Excel:

    =WENN(IstGerade(A1);"Gerade";"Ungerade")

Tipps für Profis

  • Verwende Application.Volatile in Deinen Funktionen, wenn Du möchtest, dass sie bei jeder Berechnung aktualisiert werden.
  • Debugging: Nutze Debug.Print in Deinem Code, um Werte während der Ausführung zu überprüfen.
  • Fehlerbehandlung: Implementiere On Error Resume Next, um Fehlergracefully zu handhaben.

FAQ: Häufige Fragen

1. Kann ich ein Makro direkt in einer Formel aufrufen?
Nein, Du kannst nur Funktionen in Formeln verwenden. Makros müssen als VBA-Funktionen definiert werden.

2. Was passiert, wenn ich die Datei schließe?
Die Makros bleiben in der Datei, solange Du sie als *.xlsm speicherst. Andernfalls gehen die VBA-Codes verloren.

3. Wie kann ich sicherstellen, dass mein Makro immer funktioniert?
Stelle sicher, dass die Funktion im richtigen Modul gespeichert ist und überprüfe die Zellenreferenzen in Deiner Formel.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige