• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Excel de Yenileme ve Kaydetme VBA Kodu

Katılım
2 Aralık 2022
Mesajlar
13
Excel Vers. ve Dili
Microsoft Office 365
Ben excelime Access den veri alıyorum. Fakat Excel 17 saniyede bir kendini yenilemesi ve 3 kez bunu yapıp yenilemeden sonra 5 saniye beklesi ve dosya otomatik olarak kaydetmesi lazım. bunu kayıt yaptıktan sonra tekrar yapması gerekiyor. ve sayfa2 ye her yenilediğinde saat:dakika:saniye yi yazıp yan hücresine " Yenileme Yapıldı", kayıt yaptığında " Kayıt Yapıldı" yazması gerekiyor
Örnek;
Dosya açılır.
17 Saniye sonra kendini yeniler
ss:dd:ss "Yenileme Yapıldı"
17 saniye sonra kendini yeniler
ss:dd:ss "Yenileme Yapıldı"
17 saniye sonra kendini yeniler
ss:dd:ss "Yenileme Yapıldı"
5 Saniye bekler
Kaydedilir.
ss:dd:ss "Kayıt Yapıldı"
bu şekilde bir vba kodu konusunda yardımcı olabilir misiniz
 
Merhaba,
Aşağıdaki kodların tamamını boş bir modüle kopyalayınız. Daha sonra dosyanızı kaydedip kapatıp yeniden açınız.
PHP:
Public say As Byte
Public kytZ As Double, ynlZ As Double
Sub Auto_Open()
ynlZ = Now + TimeValue("0:0:17")
Application.OnTime ynlZ, "Yenile"
End Sub

Sub Yenile()
ThisWorkbook.RefreshAll
With ThisWorkbook.Sheets("Sayfa2")
    .Cells(Rows.Count, 1).End(3)(2, 1).Value = Time
    .Cells(Rows.Count, 1).End(3)(1, 2).Value = "Yenileme Yapıldı"
End With
say = say + 1
If say < 3 Then
    ynlZ = Now + TimeValue("0:0:17")
    Application.OnTime ynlZ, "Yenile"
Else
    kytZ = Now + TimeValue("0:0:5")
    Application.OnTime kytZ, "Kaydet"
End If
End Sub

Sub Kaydet()
say = 0
ThisWorkbook.Save
With ThisWorkbook.Sheets("Sayfa2")
    .Cells(Rows.Count, 1).End(3)(2, 1).Value = Time
    .Cells(Rows.Count, 1).End(3)(1, 2).Value = "Kayıt Yapıldı"
End With
ynlZ = Now + TimeValue("0:0:17")
Application.OnTime ynlZ, "Yenile"
End Sub

Sub Auto_Close()
On Error Resume Next
Application.OnTime ynlZ, "Yenile", , False
Application.OnTime kytZ, "Kaydet", , False
End Sub
 
Geri
Üst