VBA: Funktion wird nicht gefunden

Liebe ExpertInnen,

der Aufruf einer Funktion aus einem Menü scheitert:

„Der von Ihnen eingegebene Ausdruck enthält den Namen einer Funktion, die nicht finden kann.“
Formal sieht alles aus wie in der VBA-Hilfe, also „=()“.

Im zweiten Anlauf ruft ein Makro die Funktion auf, wobei ich mir den Funktionsnamen über den Ausdrucksgenerator hole (Tippfehler ausgeschlossen). Darufhin wird erstmal die gleiche Meldung erzeugt, anschließend kommt eine Box „Aktion ist fehlgeschlagen“, die als Argument genau jenen Funktionsaufruf zeigt.

Nachdem ich mir in der Hilfe (Arbeiten mit Befehls- und Menüleisten) und 3 Büchern einen Wolf gesucht habe, suche ich dringend jemanden, der mir auffet Ferd hilft. Oder aus dem Wald heraus…

Gruß Ralf

Hi, Ralf!

Alles ein wenig vage. Compilier mal Deinen Code, vielleicht versteckt sich irgendwo ein Compilerfehler, und so was verursacht die komischsten Effekte.

Übergibst Du der Funktion auch die richtigen bzw. keine Parameter? Und handelt es sich um eine Function, nicht um ein Sub? Und ist die Function dann auch global? Erst dann kann nämlich ein Makro das Ding aufrufen…

Gruß, Manfred

Hallo,

Frage: selbstdefinierte Funktion oder eine vordefinierte Funktion?

  1. selstdefiniert … global definieren
  2. vordefefiniert … ueberpruefen ob entsp. Bibliothek auch eingebunden ist
  3. Tipp: Lass die Makros ganz weg und verwende lieber VBA-Funktionen, die lassen sich besser debuggen.
    Tschau
    Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,
wie schon erwähnt, es muss eine globale Funktion sein.
Das macht man am Besten in dem man unter „Module“ ein neues Modul beliebigen Namens definiert und darin die entsprechende Funktion schreibt. Die ist dann automatisch global.

Gruss
Joey

Spoiler (Asche auf mein Haupt)
Danke, Ihr Lieben,

blöder geht’s wieder mal nicht, ein Namenskonflikt hat mich genarrt. Prozeduren und Module dürfen gleiche Namen haben, aber versuch mal einer, sowas aufzurufen…

Gruß Ralf

Hallo Ralf,

hast du auch wirklich eine Funktion oder eine Sub-Prozedur erstellt?

Benutze als Makroaktion „AusführenCode“ und dann den Funktionsnamen mit einem Klammernpaar folgend. Je nachdem ob du Parameter in deiner Funktion benötigst, folgen leere Klammern oder die Aufzählung der Parameterwerte in der Klammer.

Gruß
EPa