< návrat zpět

MS Excel


Téma: Spustit makro v určitý čas rss

Zaslal/a 27.11.2021 19:55

Zdravím bombarďáci, mám makro:

Sub SaveSheet()
ActiveSheet.Copy
With ActiveSheet.UsedRange
.Copy
.PasteSpecial xlValues
.PasteSpecial xlFormats
End With
Application.CutCopyMode = False
ActiveWorkbook.SaveAs "C:\Users\baby\Desktop\novy.xlsx"
End Sub
Sub nacas()
Application.OnTime TimeValue("18:00:00"), "SaveSheet()"
End Sub

Nefunguje mi časové spuštění makra, čekám do 18:00, ale nic se neděje. Můžete mi, prosím, poradit?
Děkuji moc, B.

Zaslat odpověď >

#051608
elninoslov
Ale keď tam nie je dátum, tak to je asi číslo dňa 0, teda 1.1.1900. To sa asi načakáte.
Bez overenia : skúste dať Date() + TimeValue("18:00:00"), ale aj tak najskôr skontrolujte či Now() náhodou nie je väčší (teda či už 18:00 nebolo).citovat
#051609
avatar
Jak to, prosím, mohu potom zakomponovat? Děkuji, jsem začátečník. :(citovat
#051610
avatar
Nepřihlásil jsem se, pardon :) Bajacitovat
#051611
elninoslov
Ak čas už bol, nastaví sa ďalší deň. S časovačom v Exceli ale býval často problém, že sa spúšťal aj po zatvorení Excelu. Vyskúšajte. Na skúšanie si nedávajte 18:00:00 ale nejaký bližší čas 5
Pridal som aj to, aby sa ukladanie anulovalo po zatvorení súboru, a naopak, aby sa automaticky nastavilo pri otvorení súboru (toto si ale aktivujte až následne, najskôr si nastavte čas ako chcete). Prípadne sa automatická aktivácia dá urobiť na msgbox s otázkou na užívateľa. Ale potom treba zase vyriešiť, ako sa to vlastne bude spúšťať...

Do modulu:
Public New_Save_Time As Date

Sub SaveSheet()
ThisWorkbook.ActiveSheet.Copy
With ActiveWorkbook
With .Worksheets(1).UsedRange
.Value = .Value
End With
.SaveAs "C:\Users\baby\Desktop\novy.xlsx"
.Close False
End With
nacas
End Sub

Sub nacas()
New_Save_Time = Date + TimeValue("18:00:00")
If New_Save_Time < Now Then New_Save_Time = New_Save_Time + 1
Application.OnTime New_Save_Time, "SaveSheet"
End Sub

Sub Cancel_Schedule()
Application.OnTime EarliestTime:=New_Save_Time, Procedure:="SaveSheet", Schedule:=False
End Sub

Do modulu Tento_zošit:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Cancel_Schedule
End Sub

Private Sub Workbook_Open()
' nacas
End Sub
citovat
#051612
avatar
Něco jsem asi udělal špatně. Ve 12:00 hod. jsem zadal čas na "12:10:00", ale nestalo se nic, nevím :(citovat
#051613
elninoslov
Normálne to funguje. Ak by som to neotestoval, napíšem, že som netestoval. Tu som to doplnil ešte o nájdenie správneho adresára k Desktop, a preskočenie prepísania pôvodného súboru "novy.xlsx", ošetrenie chyby pri rušení naplánovania (ak makro bolo ukončené, premenná sa neuchovala, a nastane chyba).
Spúšťate to cez "nacas".
Příloha: zip51613_casovac.zip (17kB, staženo 31x)
citovat
#051614
avatar
Děkuji moc, už funguje, super práce :) Bcitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje