Banner

OT: Habe gleich 2 Excel-VBA Probleme mit "Application.OnTime" ...

OT: Habe gleich 2 Excel-VBA Probleme mit "Application.OnTime" ...

1
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 :peinlich:

2
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

3
Hi Lumpi,

auch ich kann dir nicht helfen - toll, ich weiss, wenn das jetzt alle schreiben :klatsch: , aber ich kann dir auch noch eine andere Quelle nennen: wer-weiss-was Da musst du dich dann aber registrieren lassen.

Viele Erfolg,
Martina

4
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.

5
[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"
:nene: :confused:

Wie muss ich das denn wohl schreiben?

6
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"
:nene: :confused:

Wie muss ich das denn wohl schreiben?
Das geht deshalb nicht, weil Application.OnTime eine String Variable erwartet.

Du erstellst also eine eigene Prozedur:

Code: Alles auswählen

Sub ExecMacro
   Application.Run ...
end sub


die startest du dann mit
Application.OnTime TimeValue("17:00:00"), "ExecMacro"

7
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....
Wie viele Dinge gibt es doch, die ich nicht brauche!
Diogenes von Sinope
Dem Speed Badminton verfallen...da muss man auch viel laufen!

8
[quote="Jo"]Du erstellst also eine eigene Prozedur die startest du dann mit
Application.OnTime TimeValue("17:00:00"), "ExecMacro"[/quote]
Ja, :klatsch: 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 :zwinker2:

9
[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 :nene:
Da dachte ich, ich versuchs mal mit Läufern :teufel:

Nix für ungut, bin weiterhin für Hilfe, vor allem auch zu Punkt 2, sehr dankbar!

10
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...
Wie viele Dinge gibt es doch, die ich nicht brauche!
Diogenes von Sinope
Dem Speed Badminton verfallen...da muss man auch viel laufen!

11
[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]
:hihi: Ohne Flachs, ich lese Deine Postings wirklich gerne, denn Du versuchst ständig, selbst Kanickelfürze bis aufs letzte auszudiskutieren :nick:

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 :hallo:
Ich geh' jetzt erstmal 'ne Runde rennen ...

Grüße aus Duisburg
Lumpi

12
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

13
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".
Wie viele Dinge gibt es doch, die ich nicht brauche!
Diogenes von Sinope
Dem Speed Badminton verfallen...da muss man auch viel laufen!
Gesperrt

Zurück zu „Foren-Archiv“