• DİKKAT

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

İnternet olmayınca GetData hatası

Katılım
20 Mayıs 2020
Mesajlar
6
Excel Vers. ve Dili
2016 Türkçe
Merhabalar,
Excel çalışma sayfasını açılırken internetten veri aldığım bir sayfam var(Sayfa1) ama internet olmadığı zaman hata veriyor. Acaba veri almadan önce internet kontrolünü yapıp varsa alması yoksa herhangi bir işlem yapmamasını veya 'bağlantı sorunu' diye MsgBox göstermesini nasıl sağlarım?
Kod:
Private Sub Workbook_Activate()
  Sayfa1.GetData
End Sub
 
"On Error Goto XXX" ya da "On Error Resume Next" ile çözülebilir
 
Merhaba,

Aşağıdaki kodu boş bir modüle kopyalayın.
Kod:
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long
Dim sConnType As String * 255

Public Function internetKontrol() As Boolean
    Dim ret As Long
    ret = InternetGetConnectedStateEx(ret, sConnType, 254, 0)
    If ret = 1 Then
        internetKontrol = True
    Else
        internetKontrol = False
    End If
End Function
Ardından Workbook_Activate ile ilgili kodları aşağıdakiyle değiştirin.
Kod:
Private Sub Workbook_Activate()
 
  Call internetKontrol
 
  If internetKontrol = "1" Then
    Sayfa1.GetData
    Else
    MsgBox "İnternet YOK"
  End If

End Sub
Eğer çalışma kitabınız akrifken değil de açılırken bu kontrolü sağlamak istiyorsanız Workbook_Activate altına eklediğiniz kodları Workbook_Open altına ekleyebilirsiniz.
 
On Error yönteminde hata verdi Cicosz hocamın yöntemi tam istediğim gibi Emeğinize sağlık üstadım, çok teşekkür ederim Allah razı olsun
Son olarak Workbook_Activate ile Workbook_Open arasındaki fark nedir belgenin açılış hızını mı etkiliyor
 
Workbook_open sadece excel dosyanız açılırken altındaki kodları çalıştırır. Workbook_activate ise; dosyanızın açılışında ve bilgisayarda başka programlar da açıksa onlara geçip geri excel dosyanıza dönünce de altındaki kodları çalıştırır.
 
Geri
Üst