• DİKKAT

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

Excel'de veri çekme hatası

Katılım
24 Aralık 2017
Mesajlar
6
Excel Vers. ve Dili
2007
Herkese merhabalar
Konuyu umarım doğru yere açmışımdır.

Bir excel tablosu hazırladım ve internetten veri çekiyorum. Ayarları ilk yaptığımda sıkıntı olmuyor ama 5-10 dakika sonra excel şöyle bir hata veriyor : "Site raporun geçersiz olduğunu denetliyor"
Ve verileri yenilemiyor.
Nasıl çözebilirim?_
 
Örnek bir excel koyarsanız daha hızlı yanıt alırsınız, ayrıca kullandığınız kodları da yazmamışsınız.
 
Örnek bir excel koyarsanız daha hızlı yanıt alırsınız, ayrıca kullandığınız kodları da yazmamışsınız.

Hocam bir kod vs yazmadım. Veri eklemeyi Web diyerek bir internet sitesiyazdım, oradan bir tablo gibi veri çektim. Verileri yenilemek istediğimde bu hatayı veriyor.

 
Belki de verileri çekmek için başka teknikler uygulamak gerekir.

Sitenin adresini verirseniz, deneme yapabiliriz.

.
 
Siteye kayıtlı kullanıcılara belki XML formatında verileri veriyorlardır, bilemiyorum.

Kod:
Sub GetData()
    'Haluk - 24/12/2017
    
    Dim URL As String
    Dim IE As Object
    
    ActiveSheet.Cells.Clear
    
    URL = "https://www.bitfinex.com/stats"
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Navigate URL
    
    Do Until IE.ReadyState = 4
    Loop
    
    Set MyTable = IE.Document.getElementsByTagName("table").Item(0)
    
    iRow = 2
    
    For i = 1 To MyTable.Rows.Length - 1
        iRow = iRow + 1
        For j = 0 To MyTable.Rows(i).Cells.Length - 1
            strVal = MyTable.Rows(i).Cells(j).innerHTML
            Cells(iRow, j + 1) = MyTable.Rows(i).Cells(j).innerText
        Next
    Next
    
    ActiveSheet.Columns.AutoFit
    IE.Quit
    Set MyTable = Nothing
    Set IE = Nothing
End Sub
 
Siteye kayıtlı kullanıcılara belki XML formatında verileri veriyorlardır, bilemiyorum.

Kod:
Sub GetData()
    'Haluk - 24/12/2017
    
    Dim URL As String
    Dim IE As Object
    
    ActiveSheet.Cells.Clear
    
    URL = "https://www.bitfinex.com/stats"
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Navigate URL
    
    Do Until IE.ReadyState = 4
    Loop
    
    Set MyTable = IE.Document.getElementsByTagName("table").Item(0)
    
    iRow = 2
    
    For i = 1 To MyTable.Rows.Length - 1
        iRow = iRow + 1
        For j = 0 To MyTable.Rows(i).Cells.Length - 1
            strVal = MyTable.Rows(i).Cells(j).innerHTML
            Cells(iRow, j + 1) = MyTable.Rows(i).Cells(j).innerText
        Next
    Next
    
    ActiveSheet.Columns.AutoFit
    IE.Quit
    Set MyTable = Nothing
    Set IE = Nothing
End Sub

Bu kodlarla çalıştırmayı denedim ama verileri çekmedi .s
 
Şu anda ben de denedim, verileri çekmedi.....

HTML yapısından veri çekmek çok güvenilir bir yol değil zaten.

Bu veriler XML veya JSon yapısında veriliyor mu? Veriliyorsa, sağlıklı bir şekilde veriler çekilir.

.
 
Gönderdiğiniz linkteki uygulamaları yapmak için önce siteye üye olup, API anahtarı almak lazım. Ondan sonrası nerdeyse Excel konusu değil....

Site muntazam aralıklarla bakıma alınıyormuş gibi bir hava verip, sunucuya gelen istekleri azaltmaya çalışıyorlar gibi geldi bana.

Yoksa, revize edilmiş kodla aslında bütün tablolara aşağıdaki animasyonda görüldüğü gibi erişilebiliyor. Ancak, sunucuya çok fazla istek gönderilirse, bunu DoS saldırısı zannedip IP adresinizi banlayabilirler.

 
Son düzenleme:
Dosyadaki kodları revize ettim ve yaptığım denemelerde olumsuzlukla karşılaşmadım.

Dosyadaki kodların çalıştırılmasından sonraki ekran görüntüsü yukarıdaki mesajda verilmiştir.

.
 
Geri
Üst