vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest czwartek, 02 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Makro z OnTime


otwartyotwarty rozpoczął: VBAmator postów: 5



napisał: Trebor
postów: 1209


umieszczony:
5 stycznia 2018
15:44

  
1. Należy unikać stosowania polecenia select. Zamieść kod zobaczymy czy tak się da.
2. Wywoływanie zdarzeń możesz wyłączyć
Application.EnableEvents = False



Pozdrawiam
napisał: VBAmator
postów: 67


umieszczony:
4 stycznia 2018
12:59

  
Bardzo dziękuję.
Kod działa poprawnie jednak w wyniku zamykania pliku Excel uruchamia mi się zdarzenie Workbook_BeforeClose a tam mam procedurę kopiowania do archiwum itd.
I tam właśnie kod zatrzymuje mi się na pierwszej linii z komendą .Select

Jak to rozwiązać?

Druga sprawa to: czy da się obejść w takiej sytuacji inne zdarzenia? Tzn. jeżeli priorytetem jest zdalne zamknięcie pliku to wszystkie zdarzenia BeforeSafe, BeforeClose (sprawdzające u mnie poprawność zawartości plików, archiwizujące dane itd) mogły by zostać w jakiś sposób pominięte?
napisał: admin
postów: 613


umieszczony:
22 listopada 2017
19:06

  
Cytat:
... cholera zrąbałem tytuł...


poprawiłem
napisał: Trebor
postów: 1209


umieszczony:
22 listopada 2017
17:42

  
Spróbuj dla modułu ThisWorkbook poniższy zestaw:
Option Explicit
Dim t As Date

Private Sub Workbook_Open()
t = Now + TimeValue("00:00:15")
Application.OnTime t, "end_of_work_ontime_start"
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.OnTime t, "end_of_work_ontime_start", , False
t = Now + TimeValue("00:00:15")
Application.OnTime t, "end_of_work_ontime_start"
End Sub


a dla modułu standardowego
Sub end_of_work_ontime_start()
ThisWorkbook.Close True
End Sub



Problemem będzie gdy użytkownik zostawi excela w trakcie edycji komórki - ale czy chodzi o excela
napisał: VBAmator
postów: 67


umieszczony:
22 listopada 2017
15:18

edytowany:
22 listopada 2017
15:22

  
Cześć.
Potrzebował bym zrobić makro, które działało by podobnie jak \'sleep timer\' czyli zamykało by plik zapisując zmiany kiedy pracownik go nie używa np przez 15 min. Czyli nie zachodzi żadne zdarzenie dla ActiveWindow. Z jakim zdarzeniem lub jego brakiem połączyć OnTime aby to zadziałało?

Sub end_of_work_ontime_start()
Dim t
MsgBox "TEST"
t = DateAdd("m", 15, Time)
Application.OnTime t, "end_of_work_ontime_start"
End Sub

Sub end_of_work_ontime_sluiten()
Dim t
Application.OnTime t, "end_of_work_ontime_start", , False
End Sub




... cholera zrąbałem tytuł...


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z