Jochen Kühner
Level-3
- Beiträge
- 4.449
- Reaktionspunkte
- 679
-> Hier kostenlos registrieren
Und das nächste Problem:
Habs um zu testen mal mit meiner PC Uhr simuliert, dabei ist mir folgendes Problem aufgefallen:
Beim Start wird die ganze Prozedur gestartet:
wenn das "aktDate <> endDate" ist, passiert nichts (ist ja auch gut so).
wenn sich dann das Datum so ändert, dass "aktDate = endDate" ist passiert auch nichts
Wenn allerdings das "aktDate = endDate" ist und erst dann die Datei geöffnet wird, dann funktioniert es.
Hab meins zur Vorsicht nochmals angehängt:
Muss man da mit einer Schleife arbeiten?Code:Sub Workbook_Open() Dim aktDate As Date 'aktuelles Datum Dim endDate As Date 'Monatsende Const pfad As String = "C:\Users\Administrator\Desktop\Verfügbarkeit_" aktDate = Format(Now(), "dd.mm.yyyy") endDate = DateSerial(Year(aktDate), Month(aktDate) + 1, 1) - 1 If Dir(pfad & endDate & "*") = "" Then If (aktDate = endDate) Then ActiveWorkbook.SaveAs Filename:=pfad & endDate & ".xlsm" Workbooks.Open pfad & "Vorlage.xlsm" ThisWorkbook.Close False End If End If End Sub
Denn jetzt wird das gestartet beim Öffnen...wenn die Bedingung nicht erfüllt ist, also "endDate <> aktDate" ist, dann ist das ja für das Programm erledigt und es kommt ja gar nicht mehr an den Anfang des if-Blocks?
Ja, du musst das script immer wieder aufrufen, documentopen sagt ja schon, das wird nur beim öffnen gemacht. Das zyklische aufrufen kannst du bspw mit Application.OnTime now + timevalue("24:00:00"), "test"
Machen