V udalosti Workbook_SheetCalculate vymažte podmienku
If Sh.Name <> "sheet1" And Sh.Name <> "Indices" Then
End If
Nechajte tam iba 2x Call
@:S vytváraním txt súbormi to nemá nič spoločné.
Ale môže mať. Ešte raz skúsim preformulovať otázku. Vidíte sám, že je volanie/nevolanie, udalosti/neudalosti, vyvolané/nevyvolané, nieje je úplne jasné čo z aktualizáce dát vyvolá akú udalosť (alebo nevyvolá), tak sa pýtam:
Tú kontrolu, či sa má zapísať TXT, potrebujete robiť v takých intervaloch ako kopírujete tie dáta ? Ak áno, tak potom jednoznačne urobiť všetko práve v tomto časovači, pretože, ten sa spustí s istotou každých 30 min. A nemusíte sa spoliehať, či nejaká aktualizácia vyvolá prepočet vzorca pri zmenenej alebo nezmenenej novej hodnote, alebo zmenu v inom naviazanom, ale nezobrazenom liste...
EDIT:
Ešte poznámka, procedúru Recalc je potrebné zmeniť na
Sub Recalc()
With ThisWorkbook.Worksheets("sheet1")
.Range("G25:G52").Value = .Range("F25:F52").Value
End With
Call StartTime
End Sub
Inak skolabuje, ak budete prepnutý náhodou v inom zošite práve v momente "Ticku".
citovat