Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
184to188
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
184to188
184to188
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

.OnTime - Methode in Formel

.OnTime - Methode in Formel
29.11.2002 16:05:39
Christian
Hallo Forum

Gibt es eine Möglichkeit die Application.OnTime-Methode auch in einer benutzerdefinierten Function aufzurufen?
Erstaunlicherweise ignoriert VBA gewisse Befehle ohne Kommentar.

Mein Aufruf in der benutzerdefinierten Funktion bzw. Formel
Application.OnTime now + TimeSerial(0,0,5),"MeineSub"

Wer kann mir helfen?

Gruss Christian

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: .OnTime - Methode in Formel
29.11.2002 16:35:47
Hans W. Hofmann
Nachdem .OnTime eine Prozedur aufruft, bleibt die Frage, was eine Sub zum Ergebnis einer Funktion beitragen könnte?
Ich befürchte fast, nix....


Gruß HW


Re: .OnTime - Methode in Formel
02.12.2002 08:52:58
Christian
Hallo Hans

Danke für die Antwort. Es geht aber nicht darum das Ergebnis einer Funktion zu beeinflussen, sondern um ein Ereignis von dieser Funktion auszulösen!
Diese (ausgelöste) Ereignisprozedur wird dann nämlich erst NACH dem Durchlauf der benutzerdefinierten Funktion (Formel) ausgeführt, womit der Schreibzugriff auf das gesamte Worksheet wieder möglich sein sollte. Benutzerdefinierte Funktionen sperren bekanntlich den Schreibzugriff auf das Worksheet bzw. Workbook. Ausgenommen davon sind selbstverständlich diejenigen Zellen, in denen das Funktionsergebnis eingetragen wird.
Aber eben - wie löse ich nun ein Ereignis in einer benutzdefinierten Funktion aus?

Gruss Christian

Anzeige
Re: .OnTime - Methode in Formel
02.12.2002 14:13:28
Hans W. Hofmann
Hallo Christian,

ebent das. Du kannst mit sowas nicht tricksen. Alles was in einer Function steckt bleibt in deren Adressraum gefangen. Du kannst das Problem in eine Ereignisprozedur stecken und dort auf Ereignisse reagieren - das ist der einzig Erfolg versprechende Ansatz. In der Informatik spricht man von Seiteneffekten, wenn man Speicher unter Umgehung der Übergabeparameter referenziert - das ist in VBA nur ganz eingeschränkt möglich - lesend...

Gruß HW

Re: .OnTime - Methode in Formel
02.12.2002 16:48:41
Christian
Hallo Hans

Die Idee mit dem Auslagern in eine Ereignisprozedur hatte ich ja auch schon. Doch leider bietet das Worksheet-Objekt keine wirklich guten Ereignisse für mein Problem an.
Das 'Change'-Ereignis wird nur dann ausgelöst, wenn eine Zelle im Select-Modus beschrieben wird. Ich beschreibe die Zellen aber ferngesteuert (VB6)! Und das 'Calculate'-Ereignis wird nur dann ausgelöst, wenn eine Funktion angesprochen wird. In diesem Ereignis ist es aber dann leider nicht möglich herauszufinden, welche Funktion bzw. welche Zellenbereiche davon betroffen sind.

Ich möchte eine Funktion schreiben, die sich bezüglich Parameter selbst optimiert. D.h. Nach erfolgter Berechnung, wird der übergebene Datenbereich (Referenz auf Range-Objekt) in der Formel angepasst. Damit ich aber die Formel (=...) in den Zellen dieser Funktion überschreiben kann, muss ich diese vorerst verlassen. Ein entsprechendes Ereignis würde mir dann das Überschreiben der Formel ermöglichen - so hatte ich es mir jedenfalls gedacht.
Siehst Du eine Möglichkeit, eigene Ereignisse in VBA zu erstellen, oder hast Du gar eine bessere Lösung für mein Problem?

Gruss Christian


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige