Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

UDF optionale Funktionsargumente

UDF optionale Funktionsargumente
05.05.2016 18:07:00
GerhardP
Hallo,
Ich habe folgendes Problem.
Ich habe eine UDF mit 16 Eingabeparametern geschrieben, davon sind die letzen 7 optional.
Nach der Eingabe von 6 Parametern, obwohl ich noch nicht mit der Eingabe fertig bin und der Cursor noch im Eingabefeld ist, geht Excel offensichtlich in den Code und arbeitet ihn ab. Das dauert wegen der umfangreichen Berechnungen ein paar Sekunden. Erst dann ist eine weitere Dateneingabe für ein Zeichen möglich. Dann erfolgt wieder ein Berechnungsdurchgang.
Meine Frage:
Kann ich dem Code irgendwie sagen, dass die Eingabe noch nicht abgeschlossen ist und die Berechnungen damit überspringen?
Z.b. Abfragen, ob der ok Button gedrückt bzw. Die Eingabe mit Strg+hochstellen+enter abgeschlossen wurde (das Berechnungsergebnis ist eine Matrix)
Vielen Dank für eine Antwort.
Gerhard

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das gibt's nicht! Nie gehört! Xl kaputt? Gruß owT
05.05.2016 20:33:38
Luc:-?
:-?

AW: UDF optionale Funktionsargumente
05.05.2016 21:50:26
GerhardP
Doch.
Ich habe eine Messagebox eingebaut, die sich meldet, bevor die Eingabe abgeschlossen ist. Daher kann ich sagen, dass wegen den optionalen Parametern Excel das UDF während der Eingabe abarbeitet.
Tritt auch bei anderen Rechnern auf.
Grüsse
GerhardP

Das wäre evtl nur bei zu eng eingestelltem ...
06.05.2016 01:20:27
Luc:-?
…automatischen Speichern, verbunden mit Neuberechnung, möglich, Gerhard,
und dann würde der EditierModus beendet wdn, aber auch nur, wenn das möglich ist, d.h., die Fml in der bis dahin vorliegenden Form schon als vollständig angesehen wdn kann. Das ist nicht nur bei optionalen Argumenten so, sondern in ZellFmln bei allen ab dem zweiten, wenn man dagegen keine Maßnahmen in Form von FehlerAnzeigen* bzw -Ausgaben trifft. Die MindestAngabe ist also 1 Argument u/o ein Listen­TrennZeichen (⇒dt-normal ;), anderenfalls erfolgt keine Speicherung, sondern eine FehlerMeldung und Xl bleibt im EditierModus.
Außerdem, wie oft benutzt du die UDF und ist das schon bei ihrer Erstbenutzung der Fall? Anderenfalls könnte ja auch die Notation der UDF an anderer Stelle die MsgBox, von der ich mal hoffen will, dass du die letztlich wieder aus der UDF entfernst (Debug.Print hätte auch gereicht!) → Performance (!), auslösen.
* Hier könnte ggf auch eine GlobalVariable oder benannte Xl-Konstante gesteuert wdn, von deren Zustand im Workbook_BeforeSave-Ereignis abhängig gemacht wdn kann, ob der SpeicherVorgang abgebrochen wird oder nicht.
Morrn, Luc :-?
Besser informiert mit …

Anzeige
AW: Das wäre evtl nur bei zu eng eingestelltem ...
06.05.2016 05:48:41
GerhardP
Ja. Die Funktionsargumentebox bleibt eh im Editiermodus, Excel springt nur in den Code, geht in durch und dann ist eine weitere Eingabe möglich. Weil viel berechnet wird, ist das Warten für den Nutzer mühsam. Der wird ungeduldig und glaubt, das Programm funktioniert nicht.
Was ich brauche, ist ein Schalter den ich abfragen kann, der mir sagt, dass der Nutzer seine Eingabe abgeschlossen hat.
Automatische Berechnung habe ich auch schon ausgeschaltet.
Natürlich kommt die Msgbox wieder weg!
Grüße Gerhard

Funktionsargumentebox? Dann solltest du mal ...
06.05.2016 11:51:27
Luc:-?
…etwas mehr über die Organisation dieser Berechnung verraten, Gerhard,
denn das scheint nicht die übliche zu sein. Ich ging von einer UDF in einer ZellFml aus. Da gibt's keine „Funktionsargumentebox“!
Luc :-?

Anzeige
AW: Funktionsargumentebox? Dann solltest du mal ...
07.05.2016 07:00:59
GerhardP
Die Funktion ist ein Addin und wird über den Funktionsassistenten fx aufgerufen.
So wie hier beschrieben: http://www.excel-helfer.de/excel-formeln-anzeigen-der-funktionsassistent.html
Nach Auswahl meiner Funktion werden in die Funktionsargumentebox die 16 Funktionsargumente eingegeben, wovon die letzten 6 optional sind. Das Ergebnis ist eine Matrix.
Aufgrund der optionalen Definition springt Excel, obwohl die Eingabe seitens des Nutzers noch nicht mit ok bzw. Strg+hochstellen+enter abgeschlossen wurde, in den Code und arbeitet in ab. Nach Abschluss ist in der Box eine weitere Dateneingabe möglich. Weil umfangreiche Berechnungen stattfinden, kommt es aber zu Verzögerungen bei der weiteren Eingabe.
Ich suche nach einem Befehl um das Abarbeiten des Codes anzusprechen und damit verkürzen zu können.
Ich hoffe, diese Beschreibung ist ausreichend.
Grüße Gerhard

Anzeige
AW: Funktionsargumentebox? Dann solltest du mal ...
07.05.2016 09:55:05
GerhardP
Ich habe den Befehl gefunden:
If (Not.Application.CommandBars("Standard").Controls(1).Enabled) Then Exit Function.
Damit ist das Problem gelöst.
Grüße Gerhard

Aha, habe noch nie gehört oder gesehen, ...
07.05.2016 13:41:17
Luc:-?
…dass jemand so etwas in eine UDF eingebaut hätte, Gerhard,
und dass du deine UDF über den FormelAssi eingibst, war auch nicht unbedingt aus deinem Text herauszulesen, denn bei einer Eingabe über diesen, kann dieses Verhalten eher auftreten, denn das ist ein eigenständiges Pgm, was flfd rechnet.
Außerdem hattest du ja geschrieben, dass die Berechnung schon nach dem 6.Argument beginnt, nicht erst, wenn's an die optionalen geht.
Du musst wissen, dass nur sehr wenige den FmlAssi zu benutzen scheinen, schon gar nicht die Fml-Cracks, weshalb sie dann bestimmte Anzeigen und Verhaltensweisen gar nicht kennen. Ich benutze den zwar auch häufig, um Bestimmtes feststellen zu können, und weiß deshalb, dass er bei vielen Daten und komplexen Aufgaben Probleme machen kann, konnte aber trotzdem nicht vermuten, dass du den gemeint hast, denn du hattest das anfänglich mit keinem Wort erwähnt. Dadurch wurde deine Anfrage miss- bis unverständlich, was wohl auch daran zu erkennen ist, dass sich nur ein AWer damit befasst hat. ;-]
Meine Vermutung lief in Richtung ZellEingabe der Fkt und da könnte das ggf auch passieren, weil MS ja inzwischen ein scheinbar benutzer­freundliches Feature eingeführt hat, das die die abschließende Klammer automatisch setzt. Das kann in solchen Fällen, bei Auslösen des Speicherns, auch ins Auge gehen und beeinflusst möglicherweise den FmlAssi zusätzlich negativ.
Gruß, Luc :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige