OnTime Methodu Çalışmıyor

Katılım
1 Mart 2016
Mesajlar
25
Excel Vers. ve Dili
2003
Tüm forumdaşlara merhabalar. Excel'e internetten "Power Quary" eklentisi yardımı ile 5 dakika aralıklarla çektiğim bir miktar veri var. Bu veriyi farklı excel sayfalarına yine 5 dakika ara ile dağıtmak istiyorum. Kodu manuel olarak çalıştırdığımda hiçbir sorun ile karşılaşmazken, belirli zaman aralıkları ile çalıştırmaya çalışınca "Makro bu çalışma kitabında olmayabilir ya da Makrolar devre dışı" uyarısı alıyorum. Güvenlik ayarlarından "Tüm makroları etkinleştir" dememe rağmen sorun devam ediyor. Sorunun çözümü için yardımcı olabilecek kimse var mıdır acaba?
Kod aşağıdaki gibidir, saygılar.
Kod:
Sub Auto_Open()
Application.OnTime Now + TimeValue("00:05:00"), "Dene"
End Sub


Sub Dene()

Dim HM(98, 3)

c = 1
Do While Sayfa3.Cells(c, 1) <> ""
c = c + 1
Loop
CSayisi = c - 2

Sayfa3.Select
Sayfa3.Range("C1:BCL200").Cut
Sayfa3.Cells(1, 4).Select
ActiveSheet.Paste
Sayfa3.Range("BCM1: BCM200").ClearContents
Sayfa3.Cells(1, 3) = Format(Now, "h:mm") ' Saati yazar

Sayfa4.Select
Sayfa4.Range("C1:BCL200").Cut
Sayfa4.Cells(1, 4).Select
ActiveSheet.Paste
Sayfa4.Range("BCM1: BCM200").ClearContents
Sayfa4.Cells(1, 3) = Format(Now, "h:mm") ' Saati yazar

k = 2
m = 2
Do While Sayfa3.Cells(k, 1) <> ""
CName = Sayfa3.Cells(k, 1)
   
    m = 2
    Do
    If Sayfa2.Cells(m, 1) = CName Then
    Sayfa3.Cells(k, 3) = Sayfa2.Cells(m, 6)
    Sayfa3.Cells(k, 2) = Sayfa2.Cells(m, 3)
    Sayfa4.Cells(k, 3) = Sayfa2.Cells(m, 5)
    Sayfa4.Cells(k, 2) = Sayfa2.Cells(m, 3)
    End If
   
    If Sayfa2.Cells(m, 1) = "" Then
    MsgBox Sayfa3.Cells(k, 1).Value & "Bulunamadı": GoTo 1

    End If
    m = m + 1
    Loop Until Sayfa2.Cells(m - 1, 1) = CName

k = k + 1
Loop

1:

'5 dakika
e = 2
Do While Sayfa4.Cells(e, 1) <> ""
'If Sayfa4.Cells(e, 4) = 0 Then GoTo 1
'If Sayfa4.Cells(e, 4) = "" Then GoTo 1

Sayfa6.Cells(e, 3) = (((Sayfa4.Cells(e, 3) - Sayfa4.Cells(e, 4)) * 100)) / Sayfa4.Cells(e, 4)
Sayfa6.Cells(e, 4) = (((Sayfa3.Cells(e, 3) - Sayfa3.Cells(e, 4)) * 100)) / Sayfa3.Cells(e, 4)

Sayfa7.Cells(e, 3) = (((Sayfa4.Cells(e, 3) - Sayfa4.Cells(e, 5)) * 100)) / Sayfa4.Cells(e, 5)
Sayfa7.Cells(e, 4) = (((Sayfa3.Cells(e, 3) - Sayfa3.Cells(e, 5)) * 100)) / Sayfa3.Cells(e, 5)
'15 Dakika
Sayfa8.Cells(e, 3) = (((Sayfa4.Cells(e, 3) - Sayfa4.Cells(e, 6)) * 100)) / Sayfa4.Cells(e, 6)
Sayfa8.Cells(e, 4) = (((Sayfa3.Cells(e, 3) - Sayfa3.Cells(e, 6)) * 100)) / Sayfa3.Cells(e, 6)

Sayfa9.Cells(e, 3) = (((Sayfa4.Cells(e, 3) - Sayfa4.Cells(e, 7)) * 100)) / Sayfa4.Cells(e, 7)
Sayfa9.Cells(e, 4) = (((Sayfa3.Cells(e, 3) - Sayfa3.Cells(e, 7)) * 100)) / Sayfa3.Cells(e, 7)

Sayfa10.Cells(e, 3) = (((Sayfa4.Cells(e, 3) - Sayfa4.Cells(e, 9)) * 100)) / Sayfa4.Cells(e, 9)
Sayfa10.Cells(e, 4) = (((Sayfa3.Cells(e, 3) - Sayfa3.Cells(e, 9)) * 100)) / Sayfa3.Cells(e, 9)

Sayfa11.Cells(e, 3) = (((Sayfa4.Cells(e, 3) - Sayfa4.Cells(e, 12)) * 100)) / Sayfa4.Cells(e, 12)
Sayfa11.Cells(e, 4) = (((Sayfa3.Cells(e, 3) - Sayfa3.Cells(e, 12)) * 100)) / Sayfa3.Cells(e, 12)

Sayfa12.Cells(e, 3) = (((Sayfa4.Cells(e, 3) - Sayfa4.Cells(e, 15)) * 100)) / Sayfa4.Cells(e, 15)
Sayfa12.Cells(e, 4) = (((Sayfa3.Cells(e, 3) - Sayfa3.Cells(e, 15)) * 100)) / Sayfa3.Cells(e, 15)

Sayfa13.Cells(e, 3) = (((Sayfa4.Cells(e, 3) - Sayfa4.Cells(e, 27)) * 100)) / Sayfa4.Cells(e, 27)
Sayfa13.Cells(e, 4) = (((Sayfa3.Cells(e, 3) - Sayfa3.Cells(e, 27)) * 100)) / Sayfa3.Cells(e, 27)

Sayfa14.Cells(e, 3) = (((Sayfa4.Cells(e, 3) - Sayfa4.Cells(e, 39)) * 100)) / Sayfa4.Cells(e, 39)
Sayfa14.Cells(e, 4) = (((Sayfa3.Cells(e, 3) - Sayfa3.Cells(e, 39)) * 100)) / Sayfa3.Cells(e, 39)
e = e + 1
Loop


For m = 6 To 14
'Dim HM(98, 3)
For k = 1 To CSayisi
Set s = Sheets(m)
HM(k, 1) = s.Cells(k + 1, 1)
HM(k, 2) = s.Cells(k + 1, 2)
HM(k, 3) = s.Cells(k + 1, 3)
Next k


For i = 1 To 5
For j = i To CSayisi - 1
If HM(i, 3) < HM(j + 1, 3) Then
HM(98, 1) = HM(i, 1): HM(98, 2) = HM(i, 2): HM(98, 3) = HM(i, 3)
HM(i, 1) = HM(j + 1, 1): HM(j + 1, 1) = HM(98, 1)
HM(i, 2) = HM(j + 1, 2): HM(j + 1, 2) = HM(98, 2)
HM(i, 3) = HM(j + 1, 3): HM(j + 1, 3) = HM(98, 3)
End If
Next j
Next i

For i = 1 To 5
For j = 1 To 3
Cells(m - 3, (i * 3) + j - 1) = HM(i, j)
Next j
Next i
Next m


c = 1
Do While Sayfa3.Cells(c, 1) <> ""
c = c + 1
Loop
CSayisi = c - 2

For m = 6 To 14
'Dim HM(98, 3)
For k = 1 To CSayisi
Set s = Sheets(m)
HM(k, 1) = s.Cells(k + 1, 1)
HM(k, 2) = s.Cells(k + 1, 2)
HM(k, 3) = s.Cells(k + 1, 3)
Next k

For i = 1 To 5
For j = i To CSayisi - 1
If HM(i, 3) > HM(j + 1, 3) Then
HM(98, 1) = HM(i, 1): HM(98, 2) = HM(i, 2): HM(98, 3) = HM(i, 3)
HM(i, 1) = HM(j + 1, 1): HM(j + 1, 1) = HM(98, 1)
HM(i, 2) = HM(j + 1, 2): HM(j + 1, 2) = HM(98, 2)
HM(i, 3) = HM(j + 1, 3): HM(j + 1, 3) = HM(98, 3)
End If
Next j
Next i

For i = 1 To 5
For j = 1 To 3
Cells(m + 6, (i * 3) + j - 1) = HM(i, j)
Next j
Next i

Next m

Call Auto_Open
End Sub
 
Katılım
1 Mart 2016
Mesajlar
25
Excel Vers. ve Dili
2003
Yabancı bir forumdaki cevap ile sorunumu halletmiş bulunuyorum.
Kod:
Application.OnTime Now + TimeValue("00:05:00"), "!Sayfa1.Dene"
"!Sayfa1." eklemesi ile kod şuan sorunsuz çalışmakta.
Saygılar.
 
Üst