Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
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

Problem bei Start mit Aufgabenplanung

Problem bei Start mit Aufgabenplanung
06.01.2017 16:12:29
Peter
Hallo,
leider habe ich im Archiv nicht das passende gefunden.
Ich habe eine Excel .xlsm - Datei und öffne diese mittels Aufgabenplanung. Dies funktioniert soweit einwandfrei.
Das Problem ist jedoch das Öffnen und schliessen.
Ich möchte, wenn die Datei per Aufgabenplanung öffnet, dass ein bestimmtes Makro ausgeführt wird und anschliessend die Datei geschlossen wird.
Wird die Datei jedoch manuell geöffnet, soll die Userform geöffnet werden.
Wie kann ich das bitte über Workbook_Open deklarieren.
Danke für Eure Hilfe.
Gruss
Peter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem bei Start mit Aufgabenplanung
06.01.2017 17:53:28
Michael
Hi,
erstelle Dir eine Batchdatei zum Öffnen, die Du dann in der Aufgabenplanung aufrufst (habe hier bei "Parameter" einen Tippfehler)(^Z ist Strg+z oder die F6-Taste, dann Enter):
Userbild
Hier verwendest Du natürlich statt "Parameter_Start.xlsm" Deinen Dateinamen.
Der untere Befehl erzeugt eine Mini-Textdatei "manuell.txt". Das muß natürlich nur einmal ausgeführt werden, sie wird ja nicht gelöscht, nur die Kopie...
Die wird in der ersten .bat vor dem Starten der Exceldatei auf "automatisch.txt" kopiert, was dann vom Makro ausgewertet wird:
Option Explicit
Private Sub Workbook_Open()
If Dir(ThisWorkbook.Path & "\automatisch.txt") = "" Then
MsgBox "händisch gestartet"
Else
Kill ThisWorkbook.Path & "\automatisch.txt"
MsgBox "via .BAT gestartet"
End If
End Sub

Wenn die denn vorhanden ist, löscht man sie am besten sofort wieder.
Schöne Grüße,
Michael
Anzeige
AW: Problem noch vorhanden
06.01.2017 18:20:52
Peter
Hallo Michael,
besten Dank für Deine Hilfe.
Leider klappt das noch nicht ganz. Schau Dir doch bitte mal meine Daten an:
Option Explicit
Private Sub Workbook_Open()
If Dir(ThisWorkbook.Path & "\automatisch.txt") = "" Then
MsgBox "händisch gestartet"
Else
Kill ThisWorkbook.Path & "\automatisch.txt"
MsgBox "via .BAT gestartet"
End If
End Sub
Bat-Datei:
C:\Users\Peter\Desktop>copy con Mappe_Passwort.bat
copy manell.txt automatisch.txt
start Mappe_Passwort.xlsm
1 Datei kopiert.
C:\Users\Peter\Desktop>copy con manuell.txt
bla^Z
1 Datei kopiert.
C:\Users\Peter\Desktop>
Es kommt sowohl beim Öffnen über die Bat als auch beim Händischen Öffnen die gleiche Meldung:
Händisch gestartet.
Gruss
Peter
Anzeige
AW: Problem noch vorhanden
06.01.2017 19:55:12
Michael
Hi,
bei mir hat's funktioniert; sollte nicht irgendwas ganz Schräges dahinterstecken, vermute ich mal, daß die Excel-Datei nicht an dem angegebenen Pfad liegt, sondern woanders.
Du kannst Dir ja zwischendrin mal msgbox thisworkbook.path ausgeben lassen, sofern Du diese Idee überhaupt weiterverfolgen möchtest.
Schöne Grüße,
Michael
AW: Problem noch vorhanden
07.01.2017 06:20:04
Peter
Guten Morgen Michael,
habe den Pfad überprüft - i. O.. Habe die Datei nochmals händisch geöffnet und einmal über durch Start von Batchdatei. Über die Aufgabenverwaltung funktioniert es leider auch nicht.
Keine Ahnung wo hier der Fehler liegt.
Vielleicht hast Du noch einen Rat für mich.
Gruss
Peter
Anzeige
AW: Problem bei Start mit Aufgabenplanung
06.01.2017 18:17:14
Daniel
HI
Das Workbook.Open wird es wahrscheinlich nicht erkennen, von wem es geöffnet wird.
Wenn deine Aufgabenplanung die Datei immer zu eine bestimmten Uhrzeit öffnet, dann könntest du diese Uhrzeit abfragen, ob die Userform geöffnet oder das Makro gestartet werden soll:
Private Sub Workbook_Open()
If Time > TimeValue("07:59") And Time 

und noch ein Tipp:
Wenn du über WorkbookOpen ein Makro startest oder eine Userform öffnest, dann solltest du die Makros dazu mit Application.Ontime NOW, Macroname starten.
mit OnTime aufgerufene Makros werden erst gestartet, wenn alle aktuell laufenden Prozesse abgeschlossen sind. dh diese Makros laufen dann NACH dem WorkbookOpen-Prozess.
Rufst du die Makros jedoch mit Call auf oder startest sie direkt, dann laufen sie WÄHREND dem WorkbookOpen-Prozess und das kann zu Problemen und Instablilitäten führen. Bspw ist es Problematisch, eine Datei zu schließen, die noch gar nicht vollständig geöffnet ist.
Gruß Daniel
Anzeige
AW: Problem bei Start mit Aufgabenplanung
06.01.2017 18:38:21
Peter
Hallo Daniel,
besten Dank für Deine Hilfe.
Da ich noch nicht mit Aufgabenplanung gearbeitet habe, kenne ich mich hier nicht so genau aus.
Die Einstellung in der Aufgabenplanung ist monatlich 1. Tag Startzeit 8:00 Uhr. Insoweit wäre ja alles in Ordnung. Was geschieht jedoch, wenn der PC erst um 9:00 Uhr eingeschaltet wird oder gar erst Tage später?
Kann Excel ggf. auf die Aufgabenplanung zugreifen?
Gruss
Peter
AW: Problem bei Start mit Aufgabenplanung
06.01.2017 19:02:27
Daniel
Hi
das verwirrt mich jetzt aber etwas.
ich dachte du arbeitest schon mit der Aufgabenplanung.
aber wenn ich dich richtig verstehe, dann ist die eigentliche Aufgabenschtellung eine etwas andere.
du möchtest, dass wenn du die Datei im neuen Monat das erste mal öffnest, ein bestimmtes Makro läuft bevor du anfängst zu arbeiten. Später soll das Makro nicht mehr ausgeführt werden, sodern erst wieder im neuen Monat.
das lässt sich einfach realiseren:
suche dir auf einer Tabelle eine freie Zelle z.B. Tabelle1!A1
in diese Zelle schreib dein Makro, wenn es ausgeführt wird, das aktuelle Datum:
Tabelle1.Range("A1").Value = Now
Im WorkbookOpen-Event fragst du dann einfach den Monat dieses Datums ab und vergleichst ihn mit dem aktuellen Monat. Unterscheiden sie sich, führst du das Makro aus:
If Month(Tabelle1.Range("A1").Value)  Month(Date) Then Call DeinMakro
Gruß Daniel
Anzeige
AW: Problem gelöst
07.01.2017 06:42:59
Peter
Hallo Daniel,
Guten Morgen.
Habe das Problem gelöst mit Deinem vorherigen Vorschlag.
Das mit der zweiten Userform klappt einwandfrei.
Werde das jetzt in die Orginaldatei einrichten.
Sollte widererwarten etwas nicht klappen, werde ich Dich um Hilfe bitten.
Wünsche Dir ein schönes Wochenende.
Gruss
Peter
AW: Problem bei Start mit Aufgabenplanung
06.01.2017 18:38:21
Daniel
und noch ne Idee:
Im Workbook_Open-Event startest du das Makro über application.Ontime mit einer verzögerung von 30 sekunden. Die Startzeit merkst du dir in einer Projektweit gültigen Variablen
(muss in einem allgemeinen Modul mit Public oberhalb der Makros deklariert werden)
dann startets du ebenfalls über Application.OnTime eine weitere Userform mit einem OK-Button.
bei Klick auf den OK-Button rufst du dann das Application.Ontime für das Makro zurück, so daß es nicht ausgeführt wird und startest die eigentliche Userform.
sieht als Code so aus:
im Modul DieseArbeitsmappe:
Private Sub Workbook_Open()
StartZeit = Now + TimeSerial(0, 0, 30)
Application.OnTime StartZeit, "DeinMakro"
Application.OnTime Now, "UserForm1Zeigen"
End Sub
im Modul 1
Option Explicit
Public StartZeit As Date
Sub UserForm1Zeigen()
UserForm1.Show 0
End Sub
Sub DeinMakro()
Unload UserForm1
'...hier dein Code
ThisWorkbook.Save
ThisWorkbook.Close
End Sub
in der Userform1
Private Sub CommandButton1_Click()
Application.OnTime StartZeit, "DeinMakro", schedule:=False
Unload Me
UserForm2.Show
End Sub
du musst dann innerhalb von 30 Sekunden (oder je nachdem) bestätigen, dass du die Datei manuell geöffnet hast, ansonsten wird das Makro ausgeführt und die Datei geschlossen.
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige