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

Doppelter Funktionsaufruf bei AddIn

Doppelter Funktionsaufruf bei AddIn
29.08.2005 17:12:21
Jan
Hallo,
habe mir ein Makro mit einer Hauptfunktion geschrieben und als AddIn gespeichert.
Ich lade mir das AddIn und rufe die Hauptfuktion über den Funktions-Manager aus, wobei die Funktion leider gleich 2 mal aufgerufen wird, bevor das Fenster für die [ok] und [Abbrechen]-Bestätigung erscheint.
Kann mir jemand sagen, wie ich es abstellen kann?
Danke,
Gruß Jan

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelter Funktionsaufruf bei AddIn
29.08.2005 17:18:59
Matthias
Hallo Jan,
Application.RunFunctionsTwice = False

Nee, im Ernst, wie soll man da ohne Code was sagen?
Gruß Matthias?
AW: Doppelter Funktionsaufruf bei AddIn
29.08.2005 17:26:15
jan
Hi Matthias,
hier mal die Funktion.
Mehr enthält das Makro nicht.
Public

Function Main()
Call MsgBox("Main() wird ausgeführt")
End Function

noch offen - o.T.
29.08.2005 17:31:50
Matthias
-
AW: Doppelter Funktionsaufruf bei AddIn
29.08.2005 18:23:31
Nepumuk
Hi Jan,
das kann ich nicht nachvollziehen. Wie / Womit wird das Makro aufgerufen?
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Doppelter Funktionsaufruf bei AddIn
29.08.2005 20:48:58
jan
Hi Nepumuk,
das Tabellenblatt, welches das Makro enthält speichere ich als .xla und kann es dann als AddIn über den AddIn-Manager importieren.
Dann gehe ich auf irgendeine Zelle eines neuen/anderen Tabellenblatts, öffne den Funktions-Assistenten und unter Benutzerdefiniert rufe ich die Funktion Main() auf.
Gruß Jan
Anzeige
AW: Doppelter Funktionsaufruf bei AddIn
29.08.2005 20:57:47
Nepumuk
Hi,
dann ist das aber nur beim einfügen der Funktion in die Tabelle so. Wenn ich als zweite Zeile "Application.Volatile" in die Funktion einfüge, wird die Msgbox immer nur einmal angezeigt.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Doppelter Funktionsaufruf bei AddIn
29.08.2005 21:27:45
jan
Ja genau,
nur hast Du eine Idee, wie ich es verhindern kann?
Die eigentliche Funktion führt ein Update von x-tausend Datensätzen aus.
Und das ist leider etwas fatal.
Gruß Jan
AW: Doppelter Funktionsaufruf bei AddIn
29.08.2005 21:29:36
jan
Andererseits, hat jemand eine Idee, wie ich ein VBA-Makro anders als AddIn zur Verfügung stellen könnte?
Gruß Jan
Anzeige
AW: Doppelter Funktionsaufruf bei AddIn
29.08.2005 21:54:08
Nepumuk
Hi,
ich sehe da kein Problem, wenn die Funktion mehrfach aufgerufen wird. Denn sie kann ja keine Parameter ändern und sich nicht auf sich selbst beziehen. Also auch wenn sie hundert mal aufgerufen wird, kann immer nur das selbe Ergebnis raus kommen.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Doppelter Funktionsaufruf bei AddIn
29.08.2005 22:13:06
jan
Hi Nepumuk,
die eigentl. Funkiton wird auf ca. 80 Tabellenblätter mit je 3.000 Datensätzen updates auf einer Datenbank durchführen.
Und das bedeutet einen sehr hohen Zeitaufwand, wenn die Funktion gleich 2 mal ausgeführt wird. Kann ich das AddIn so programmierten, dass der Funktion über die Menüsteuerung aufgerufen werden kann?
Gruß Jan
Anzeige
AW: Doppelter Funktionsaufruf bei AddIn
29.08.2005 23:20:54
Nepumuk
Hi Jan,
dann mach eine ganz normale Sub daraus.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Doppelter Funktionsaufruf bei AddIn
30.08.2005 00:08:24
jan
Jo, hatte ich anfangs.
Leider kann ich dann kein AddIn verwenden, da die Sub nicht gefunden wird, da nur Funktionen über den Funktions-Assistenten sichtbar sind.
Und das Makro muß für jeden beliebigen einzubinden sein, ohne das er am Quellcode was ändern kann.
Gruß Jan
AW: Doppelter Funktionsaufruf bei AddIn
30.08.2005 00:17:51
Nepumuk
Hi,
1. Du kannst doch den Code in einem Addin genauso editieren wie den Code in einer normalen Mappe.
2. Überwache das öffnen von Mappen. Wenn die richtige geöffnet wird, blende eine Symbolleiste zum Starten des Makros ein.
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Doppelter Funktionsaufruf bei AddIn
30.08.2005 01:53:47
jan
Hi Nepumuk,
da fällt mir was ein.
Ist es möglich, den [ok] - Button des Funktions-Assistenten abzufragen, also wird durch ihn ein bestimmtes Ereignis ausgelöst?
Dann würde ich die Implementation der Funktion nur dann ausführen, wenn der Anwender den Button anklickt.
Gruß Jan
AW: Doppelter Funktionsaufruf bei AddIn
30.08.2005 07:38:19
Nepumuk
Hi,
dazu müsste permanent ein Timer in der Mappe laufen, was sich wieder negativ auf die Geschwindigkeit auswirkt. Außerdem geht das nur mit API und ist sauschwer.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Doppelter Funktionsaufruf bei AddIn
30.08.2005 08:38:29
jan
Hi,
leider sind mir als Entwickler die Dateinamen, welche der Anwender später aufruft, unbekannt.
Was ich meine ist, der [ok]-Button muß ja beim Anklicken ein click-Ereignis auslösen.
Und aufgrund diesen Ereignisses könnte ich ja dann per If-Statement entsprechend den Funktionsrumpf ausführen oder nicht.
Also in der Art:
if(cType(sender, FunktionsAssistent.okButton)) then
... weitere Anweisungen
end if
Stellt sich die Frage, ob das Ereignis abzufragen ist.
Gruß Jan
Anzeige
AW: Doppelter Funktionsaufruf bei AddIn
30.08.2005 08:53:44
Nepumuk
Ach Jan,
wenn das ein von dir generiertes Userform wäre, dann wäre es kein Problem. Aber das ist ein Excelinterner Dialog, der keinerlei verwertbares Ereignis liefert. Nicht mal der Aufruf des Dialoge löst ein Ereignis aus. Deswegen auch der Timer, der sagen wir jede Sekunde prüft, ob das Fenster geöffnet wurde. Dann muss die Position des Fensters / Buttons ermittelt werden und ein Hook auf die Maus gesetzt werden. Wenn die Maus in den Bereich des Buttons kommt und ein Linksklick gemacht wird, dann kann ich das verwerten. Ist aber ein Riesenaufwand.
Gibt es denn gar kein Merkmal der Mappe, welches verwendet werden kann? Wie werden die Mappen erzeugt? Durch das kopieren der ersten Mappe oder nimmt der User eine jungfrauliche und fängt an Daten einzugeben?
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Doppelter Funktionsaufruf bei AddIn
30.08.2005 09:25:48
jan
Hi,
leider nein.
Wer könnte mir eigentlich die Frage beantworten, aus welchem Grund die Funktion 2x ausgeführt wird?
Gruß Jan

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige