• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü İnternet Kapalı İken Makrodaki Hata

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

RBozkurt

Yeni Üye
Katılım
25 Ara 2021
Mesajlar
322
Çözümler
36
Aldığı beğeni
202
Excel V
Office 2021 TR
Merhabalar,
Ekteki dosyada bulunan makro internet açık iken çalışıyor, internet kapalı iken çalışmıyor.
Çalışmaması normal fakat ekrana hata bırakıyor.

İnternet kapalı iken hata gelmemesi konusunda yardımcı olabilirmisiniz?
Teşekkür ederim.
 

Ekli dosyalar

Çözüm
Merhaba.
Alttaki kodu bir modüle ekeyin.
Sonrada sizin koda resimdeki kırmızı yeri ekleyip deneyin.

Screenshot 2022-03-13 113139.png

Rich (BB code):
#If VBA7 Then
    Public Flg As LongPtr
    Public Declare PtrSafe Function InternetGetConnectedState _
            Lib "wininet.dll" (lpdwFlags As LongPtr, _
            ByVal dwReserved As Long) As Boolean
#Else
    Public Flg As Long
    Public Declare Function InternetGetConnectedState _
            Lib "wininet.dll" (lpdwFlags As Long, _
            ByVal dwReserved As Long) As Boolean
#End If

Private Const INTERNET_CONNECTION_MODEM As Long = &H1
Private Const INTERNET_CONNECTION_LAN As Long = &H2
Private Const INTERNET_CONNECTION_PROXY As Long = &H4
Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20

Function...
Makro içinde bulunan http://ip-api.com/xml/ sitesi çalışmadığını düşünelim. İnternet olsa bile o zamanda hata verecektir.
Şimdilik hata çıkan satır IP = XDoc.SelectSingleNode("query/query").Text budur.

Düzeltme diğer satırlarda da bir hata çıkması durumuna göre yapılabilir mi?
 
Merhaba.
Alttaki kodu bir modüle ekeyin.
Sonrada sizin koda resimdeki kırmızı yeri ekleyip deneyin.

Screenshot 2022-03-13 113139.png

Rich (BB code):
#If VBA7 Then
    Public Flg As LongPtr
    Public Declare PtrSafe Function InternetGetConnectedState _
            Lib "wininet.dll" (lpdwFlags As LongPtr, _
            ByVal dwReserved As Long) As Boolean
#Else
    Public Flg As Long
    Public Declare Function InternetGetConnectedState _
            Lib "wininet.dll" (lpdwFlags As Long, _
            ByVal dwReserved As Long) As Boolean
#End If

Private Const INTERNET_CONNECTION_MODEM As Long = &H1
Private Const INTERNET_CONNECTION_LAN As Long = &H2
Private Const INTERNET_CONNECTION_PROXY As Long = &H4
Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20

Function IsInternetConnected() As Boolean
    Dim R As Long
    R = InternetGetConnectedState(Flg, 0&)

    If CBool(R) Then
        IsInternetConnected = True
    Else
        IsInternetConnected = False
    End If
End Function
 
Son düzenleme:
Çözüm
Sayın Refaz teşekkürler
İnterneti kesince uyarı veriyor ve dosya çalışmaya devam ediyor. Bu problem çözüldü.

Alt satırdaki verilerde hata olursa nasıl atlatabilirim?
strURL = "http://ip-api.com/xml/" & IP mesela bu site çalışmaz ise yine hata veriyor.
(Sitenin çalışmadığını düşünelim sona M harfi ekledim denedim > http://ip-api.comm/xml/

Alttaki satırlarda ayrı ayrı çıkabilecek hataları nasıl gözardı edebilirim?
query/country verisini çekemez ise o satırda hata verecektir. Dİğer satırlarda aynı şekilde.
6 adet hata atlama işlemi gerçekleşebilir mi ?

C++:
        IP = XDoc.SelectSingleNode("query/query").Text
                 
        Ülke = XDoc.SelectSingleNode("query/country").Text
        Bölge = XDoc.SelectSingleNode("query/regionName").Text
        Şehir = XDoc.SelectSingleNode("query/city").Text
        Koordinat = XDoc.SelectSingleNode("query/lat").Text & ", " & XDoc.SelectSingleNode("query/lon").Text
        ISP = XDoc.SelectSingleNode("query/isp").Text
 
Rica ederim abey.
Sanıyorum 200 lü bişey vardı bağlantı için.O kodu bulursam eklerim.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst