Seite 1 von 1
OT: Habe gleich 2 Excel-VBA Probleme mit "Application.OnTime" ...
Verfasst: 13.10.2005, 22:12
von Herr Wieland
Ich habe da zwei Problemchen in Excel Makros, vielleicht kann mir ja jemand helfen ...
-------------
1.)
Wie kann ich ein Makro aus einer anderen Datei heraus starten?
Ich habe mehrere Excel-Arbeitsmappen mit verschiedenen Makros welche zeitgesteuert gestartet werden, mit (zB)
Application.OnTime TimeValue("14:30:00"), "makro1"
Nun möchte ich diese Steuerung in eine weitere xls-Datei verschieben, aus der heraus diese Makros in den verschiedenen Arbeitsmappen gesteuert werden sollen. Wie muss ichs schreiben, dass dieses Start-Makro ein Makro aus einer anderen Arbeitsmappe startet?
-------------
2.)
Nochmal Application.OnTime ...
Bislang habe ich Makros, die in Intervallen ablaufen und Makros die zu bestimmten Terminen ablaufen, dass funzt ganz gut via
Application.OnTime Now + TimeValue("00:30:00"), "makro1"
und
Application.OnTime TimeValue("14:30:00"), "makro2"
Nun habe ich ein Makro, das um 21 Uhr das erste mal laufen soll, sich dann alle 15 min wiederholt und um 7 Uhr das letzte mal laufen soll.
-------------
Wenn mir jemand helfen kann bitte ich um eine möglichst simple Erklärnung. Am besten ihr setzt NIX voraus. In Excel kenn' ich mich ganz gut aus, meine VBA-Kenntnisse beschränken sich allerdings lediglich auf mit gepflegtem Halbwissen ausgebaute Recorderaufnahmen 
Verfasst: 14.10.2005, 08:33
von hansolo
Moin Lumpi,
bei deinem Excel-Problem kann ich dir leider nicht helfen, aber unter
http://www.spotlight.de findest du eine mit Sicherheit eine Antwort auf deine Fragen.
Gruß
Uwe
Verfasst: 14.10.2005, 08:50
von olma4u
Hi Lumpi,
auch ich kann dir nicht helfen - toll, ich weiss, wenn das jetzt alle schreiben

, aber ich kann dir auch noch eine andere Quelle nennen:
wer-weiss-was Da musst du dich dann aber registrieren lassen.
Viele Erfolg,
Martina
Verfasst: 14.10.2005, 09:42
von Jo
Zu 1 kann ich dir sofort antworten. Mit Application.Run kannst du Makros in anderen Mappen starten.
Application.Run "c:\temp\test.xls!MAKRONAME"
Genaueres findest du in der Excel VBA-Hilfe:
Benannte Argumente können mit dieser Methode nicht verwendet werden. Argumente müssen nach Position übergeben werden.
Die Run-Methode gibt den Rückgabewert des aufgerufenen Makros zurück. Objekte, die als Argumente an das Makro weitergeleitet werden, werden in Werte konvertiert (durch Zuweisung der Value-Eigenschaft an das Objekt). Das heißt, es ist mit der Run-Methode nicht möglich, Objekte an Makros weiterzuleiten.
Beispiel
Dieses Beispiel verdeutlicht, wie Sie das Funktionsmakro "My_Func_Sum" aufrufen, das in der Makrovorlage "Mycustom.xlm" definiert ist (die Makrovorlage muss geöffnet sein). Die Funktion verarbeitet zwei numerische Argumente (hier 1 und 5).
mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5)
MsgBox "Macro result: " & mySum
Bei Punkt 2 muss ich mal nachdenken. VBA ist da ein wenig in seinen Möglichkeiten beschränkt.
Verfasst: 14.10.2005, 13:22
von Herr Wieland
[quote="Jo"]
Application.Run "c:\temp\test.xls!MAKRONAME"
[/quote]
Hallo Jo.
Erstmal danke für Dein Mitdenken ...
Application.Run hatte ich schonmal ausprobiert. Aber irgendwie bekomme ich das mit der Syntax nicht hin, in der Kombi mit Application.OnTime ...
So gehts jedenfalls nicht:
Application.OnTime TimeValue("14:30:00"), Application.Run "c:\temp\test.xls!MAKRONAME"
Wie muss ich das denn wohl schreiben?
Verfasst: 14.10.2005, 13:34
von Jo
Lumpi hat geschrieben:Hallo Jo.
Erstmal danke für Dein Mitdenken ...
Application.Run hatte ich schonmal ausprobiert. Aber irgendwie bekomme ich das mit der Syntax nicht hin, in der Kombi mit Application.OnTime ...
So gehts jedenfalls nicht:
Application.OnTime TimeValue("14:30:00"), Application.Run "c:\temp\test.xls!MAKRONAME"
Wie muss ich das denn wohl schreiben?
Das geht deshalb nicht, weil Application.OnTime eine String Variable erwartet.
Du erstellst also eine eigene Prozedur:
die startest du dann mit
Application.OnTime TimeValue("17:00:00"), "ExecMacro"
Verfasst: 14.10.2005, 14:21
von einfach-Marcus
Wieso stellt mensch solche Fragen eigentlich nicht in einem Excel-Forum? Da wären die Antworten schneller, ausführlicher und auch gleich für andere User zu finden, wenn sie ein ähnliches Problem haben....
Verfasst: 15.10.2005, 10:18
von Herr Wieland
[quote="Jo"]Du erstellst also eine eigene Prozedur die startest du dann mit
Application.OnTime TimeValue("17:00:00"), "ExecMacro"[/quote]
Ja,
hätte ich glatt drauf kommen können ...
Danke!
Sollte Dir zu Punkt 2 auch noch was einfallen, halte Dich nicht unnötig zurück 
Verfasst: 15.10.2005, 10:25
von Herr Wieland
[quote="einfach-Marcus"]Wieso stellt mensch solche Fragen eigentlich nicht in einem Excel-Forum? Da wären die Antworten schneller, ausführlicher (...)[/quote]Moin Marcus.
Ist nicht so, daß ich's nicht versucht hätte. Aber Deine Schlußfolgerung stimmt leider nicht unbedingt, was natürlich auch an den von mir gewählten excel-Foren liegen könnte, das will ich nicht ausschliessen. Das VB-Brett in "wer-weiss-was" war garnicht ergibig und die "Experten bei Herbers" setzen wohl zu viel Vorwissen voraus ... vielleicht bin ich für die Jungs aber auch zu blöd
Da dachte ich, ich versuchs mal mit Läufern
Nix für ungut, bin weiterhin für Hilfe, vor allem auch zu Punkt 2, sehr dankbar!
Verfasst: 15.10.2005, 12:08
von einfach-Marcus
Du stellst also die These auf, dass einem gemeinen Excel-VBA-Programmierer unter bestimmten Umständen in einem Laufforum schneller und besser geholfen wird als im restlichen deutschen www?
Das is ja mal was richtig Interessantes...
Verfasst: 15.10.2005, 12:59
von Herr Wieland
[quote="einfach-Marcus"]Du stellst also die These auf, dass einem gemeinen Excel-VBA-Programmierer unter bestimmten Umständen in einem Laufforum schneller und besser geholfen wird als im restlichen deutschen www?
Das is ja mal was richtig Interessantes...[/quote]
Ohne Flachs, ich lese Deine Postings wirklich gerne, denn Du versuchst ständig, selbst Kanickelfürze bis aufs letzte auszudiskutieren 
Tatsache ist, ich habe diese Frage fast gleichzeitig in drei Foren gepostet, herbers.de (Excel-Forum), wer-weiss-was.de (Visual Basic-Brett) und eben hier. Und Jo's antworten (s.o.) haben mich auf der Suche nach Lösungen bislang am weitesten voran gebracht.
Du darfst nun gerne jegliche Interpretationen anstellen 
Ich geh' jetzt erstmal 'ne Runde rennen ...
Grüße aus Duisburg
Lumpi
Verfasst: 15.10.2005, 13:04
von stachelbär
Hi Lumpi,
bin zwar in Excel/VBA noch weit weniger bewandert als Du, aber kannst Du Punkt 2 nicht mit einer Schleife lösen? Um 21:00 starten, das Makro abarbeiten, ein Viertelstündchen Pause machen, nächster Durchgang? (Geht natürlich nur, wenn die Zeit für die Abarbeitung des Makros entweder sehr konstant oder ohnehin zu vernachlässigen ist.).
Just my 2 cents,
Michael
Verfasst: 15.10.2005, 13:36
von einfach-Marcus
Lumpi hat geschrieben:Ohne Flachs, ich lese Deine Postings wirklich gerne, denn Du versuchst ständig, selbst Kanickelfürze bis aufs letzte auszudiskutieren
Ich bin als Nichtbenutzer des von dir genannten Produktes lediglich erstaunt darüber, dass die besten Lösungen für Probleme mit selbigem in einem Laufforum gegeben werden...
Ich versuche demnächst auch mal ein Linuxproblem im Philosophieforum aufzutischen...
Mich amüsiert das zu Tode, sorry, ich bin da eben "anders".