internetten dakikada bir excele otomatik olarak veri çekiyorum. internet gidince işlem duruyor.

Katılım
21 Haziran 2022
Mesajlar
4
Excel Vers. ve Dili
excel 2010 professional
merhaba,

internetten dakikada bir veri çeken bir excel dosyam var. bu gelen yeni verilere göre de çalışan otomatik makrolarım var. bu excel dosyası gün boyu kendi kendine çalışıyor.

sorun şu ki internet bağlantısında sorun olduğunda [DataSource.Error] Uzak ad çözülemedi: şeklinde bir excel uyarısı geliyor. ve daha sonra internet bağlantısı düzelsede bu uyarı ekranda olduğu için yeni veriler gelemiyor ve makrolar çalışamıyor.

bu uyarıdan çıkış yolları f4 e basmak veya esc tuşuna bakmak.

istediğim şu bir kod yazayım belirli aralıklarla, örneğin 3 dakikada bir otomatik olarak esc tuşuna basmışım gibi işlem yapsın. haliyle internet bağlantısında sorun olursa bu kod 3 dakikada bir escape yaptığı için internet bağlantısı düzeldiğinde veri alma işlemi ve buna bağlı otomatik makrolarım çalışmaya kaldığı yerden devam etsin istiyorum.


bu konuda fikri olan, yardımcı olabilecek kimse var mı?

şimdiden teşekkürler.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
İnternet bağlantısını kontrol etmek çözüm olabilir.
Kod:
Public Const INTERNET_CONNECTION_PROXY As Long = &H4
Public Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8
Public Const INTERNET_RAS_INSTALLED As Long = &H10
Public Const INTERNET_CONNECTION_OFFLINE As Long = &H20
Public Const INTERNET_CONNECTION_CONFIGURED As Long = &H40
#If VBA7 Then ' Excel 2010 or later
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr)
#Else ' Excel 2007 or earlier
Public Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long)
#End If

Public Declare Function GetInternetState _
Lib "Wininet.dll" _
Alias "InternetGetConnectedState" _
(ByVal lpdwFlags As Long, _
ByVal Reserved As Long) As Long




Public Function IsInternetLive() As Boolean
    
    Dim Flags As Long
    Dim Ret
    
    Ret = GetInternetState(Flags, 0&)
    IsInternetLive = Ret And Not (Flags And INTERNET_CONNECTION_OFFLINE)
    
End Function


Sub CheckConnection()
    
    If IsInternetLive Then
        'MsgBox "İnternet var"
        
    Else
        'MsgBox "İnternet yok"
        Call Kontrolet
    End If
    
End Sub

Sub Kontrolet()
Sleep 1000 * 60 * 3 '3 dakika bekle
Call CheckConnection
End Sub
 
Üst