• DİKKAT

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

internet üzerinden veri çekmek

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,677
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,


Aşağıdaki kod ile 2016 yılı tüfe oranlarını çekebiliyorum ama sitede combobox seçeneği ile 2015 yılı veriside alınabiliyor.
Kodun 2015 yılı verisinide almak için nasıl değiştirmeliyim.

Teşekkürler

http://www.maliyetbul.com/ha09-13-Fiyat-farki-icin-endeksler.php

Kod:
Sub ufe()
Dim i As Integer, j As Integer

'Range("a:j").ClearContents

Const URL As String = _
"http://www.maliyetbul.com/ha09-13-Fiyat-farki-icin-endeksler.php"

    Set ie = CreateObject("InternetExplorer.Application")
    
    ie.Navigate URL
    
    Do Until ie.ReadyState = 4: DoEvents: Loop
    Do While ie.Busy: DoEvents: Loop
   
   'Başlıklar...
   
   On Error Resume Next
  
    With ie.Document.getelementsbytagname("table").Item(2)
    
        For i = 1 To .Rows.Length - 1

            For j = 0 To .Rows(1).Cells.Length - 1

                Cells(i, j + 1) = .Rows(i).Cells(j).innertext

            Next

        Next

    End With
    
    'Veriler...
    With ie.Document.getelementsbytagname("table").Item(4)
    
    son = Sayfa1.Cells(Rows.Count, "a").End(3).Row + 1
    
        For i = 1 To .Rows.Length - 1
            For j = 0 To .Rows(1).Cells.Length - 1

                Cells(i + 2, j + 1) = .Rows(i).Cells(j).innertext

            Next

        Next

    End With
    
    ie.Quit: Set ie = Nothing:
    'MsgBox "Bitti", vbInformation
End Sub
 
Yıl seçimi yapılan combonun id' si "D2" dir. Bunun value özelliğine "2015" atayıp "onchange" olayını tetikletin. Ardından 2015 tabloları alabilirsiniz.
 
Kod:
    Do Until IE.ReadyState = 4: DoEvents: Loop
    Do While IE.Busy: DoEvents: Loop

yukarıdaki kodun hemen altına aşağıdaki bölümü ekleyin ve kırmızı yeri kendiniz değiştirin.

örnek
2016 için 0
2015 için 1
2014 için 2

yapın


Kod:
IE.document.all("D2").selectedIndex = [COLOR="Red"]1[/COLOR]
IE.document.all("D2").OnChange
Application.Wait (Now + TimeValue("00:00:02"))
   
Do Until IE.ReadyState = 4: DoEvents: Loop
Do While IE.Busy: DoEvents: Loop
 
Zeki bey teşekkür ederim.

Koda aşağıdaki kısmı ekleyince 2015 yılını alabildim.

Kod:
   Set e = ie.document.getElementById("D2")
   e.Value = 2015
    ie.document.getElementById("D2").onchange
 
Halit bey teşekkür ederim.
Sizin çözümünüzü de arşivime alacağım.
 
Geri
Üst