Soru Excel internet daha hızlı veri almak için

Katılım
19 Mayıs 2017
Mesajlar
35
Excel Vers. ve Dili
makro
Altın Üyelik Bitiş Tarihi
15-02-2025
Kod:
Private Sub CommandButton1_Click()


Application.ScreenUpdating = True
Application.Wait (Now + TimeValue("0:00:01"))
'kodlar
'kodlar

'hamitabat 10 ünite
'Referanslara eklenmesi gerekenler
'Microsoft internet controls
'Microsoft HTML Object Library
Dim html As HTMLDocument
Dim tables As IHTMLElementCollection
Dim ie As InternetExplorer
Dim tarih As String, d1 As Date, d2 As Date

Cells.Delete




Dim d3 As Date
d1 = InputBox("başlangıç ", , "01.01.2020")
'first = InputBox("Baslangic", , "01/02/2020")
d2 = InputBox("bitiş ", , "1.02.2020")
satir = 2
tarih = d1 & " - " & d2
d1date = DateValue(d1)
d2date = DateValue(d2)
n = DateDiff("d", d1date, d2date)

Set ie = New InternetExplorer
ie.Visible = False
ie.Navigate ("https://seffaflik.epias.com.tr/transparency/uretim/planlama/kgup.xhtml")
Do While ie.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
While ie.Busy: DoEvents: Wend
Set psize = ie.Document.getElementById("j_idt199:distributionId_input")
psize.Value = "378"
Set EVNT = ie.Document.createEvent("HTMLEvents")
EVNT.initEvent "change", True, False
ie.Document.getElementById("j_idt199:distributionId_input").dispatchEvent EVNT
ie.Document.getElementById("j_idt199:goster").Click
Do While ie.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
While ie.Busy: DoEvents: Wend
ie.Document.getElementById("j_idt199:uevcb_input").selectedIndex = 3
Set EVNT = ie.Document.createEvent("HTMLEvents")
EVNT.initEvent "change", True, False
ie.Document.getElementById("j_idt199:uevcb_input").dispatchEvent EVNT
ie.Document.getElementById("j_idt199:goster").Click
Do While ie.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
While ie.Busy: DoEvents: Wend
    
Dim d As Date
For d = d1 To d2

Dim tt As String
tt = d
ie.Document.getElementById("j_idt199:date1_input").Value = tt
ie.Document.getElementById("j_idt199:date2_input").Value = tt

ie.Document.getElementById("j_idt199:goster").Click

Do While ie.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
While ie.Busy: DoEvents: Wend

Set html = ie.Document
Set tables = html.getElementsByTagName("table")

Dim table As HTMLTable
Dim lrow As Integer
Dim lcolumn As Long
Dim cell As HTMLTableCell
lrow = Sheets(1).Range("A" & Rows.Count).End(3).Row
lcolumn = 0
For Each table In tables
    For Each Row In table.Rows
        lcolumn = 0
        For Each cell In Row.Cells
            Sheets(1).Cells(lrow + 1, lcolumn + 1).Value = cell.innerText
            lcolumn = lcolumn + 1
        Next
        lrow = lrow + 1
    Next
Next
Next
ie.Quit

Sheets(1).Columns.AutoFit
Sheets(1).Rows.AutoFit
Dim formattable As ListObject
Set formattable = Sheets(1).ListObjects.Add(xlSrcRange, Sheets(1).Range("a2").CurrentRegion, xlYes)
formattable.TableStyle = "TableStyleMedium14"





'Hamitabat 20 Ünite
'Referanslara eklenmesi gerekenler
'Microsoft internet controls
'Microsoft HTML Object Library




Cells.Select





satir = 2
tarih = d1 & " - " & d2
d1date = DateValue(d1)
d2date = DateValue(d2)
n = DateDiff("d", d1date, d2date)

Set ie = New InternetExplorer
ie.Visible = False
ie.Navigate ("https://seffaflik.epias.com.tr/transparency/uretim/planlama/kgup.xhtml")
Do While ie.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
While ie.Busy: DoEvents: Wend
Set psize = ie.Document.getElementById("j_idt199:distributionId_input")
psize.Value = "378"
Set EVNT = ie.Document.createEvent("HTMLEvents")
EVNT.initEvent "change", True, False
ie.Document.getElementById("j_idt199:distributionId_input").dispatchEvent EVNT
ie.Document.getElementById("j_idt199:goster").Click
Do While ie.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
While ie.Busy: DoEvents: Wend
ie.Document.getElementById("j_idt199:uevcb_input").selectedIndex = 4
Set EVNT = ie.Document.createEvent("HTMLEvents")
EVNT.initEvent "change", True, False
ie.Document.getElementById("j_idt199:uevcb_input").dispatchEvent EVNT
ie.Document.getElementById("j_idt199:goster").Click
Do While ie.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
While ie.Busy: DoEvents: Wend
    

For d = d1 To d2


tt = d
ie.Document.getElementById("j_idt199:date1_input").Value = tt
ie.Document.getElementById("j_idt199:date2_input").Value = tt

ie.Document.getElementById("j_idt199:goster").Click

Do While ie.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
While ie.Busy: DoEvents: Wend

Set html = ie.Document
Set tables = html.getElementsByTagName("table")




lrow = Sheets(1).Range("U" & Rows.Count).End(3).Row
lcolumn = 0
For Each table In tables
    For Each Row In table.Rows
        lcolumn = 0
        For Each cell In Row.Cells
            Sheets(1).Cells(lrow + 1, lcolumn + 21).Value = cell.innerText
            lcolumn = lcolumn + 1
        Next
        lrow = lrow + 1
    Next
Next
Next
ie.Quit

Sheets(1).Columns.AutoFit
Sheets(1).Rows.AutoFit

Set formattable = Sheets(1).ListObjects.Add(xlSrcRange, Sheets(1).Range("U6").CurrentRegion, xlYes)
formattable.TableStyle = "TableStyleMedium14"

Application.ScreenUpdating = True
Unload UserForm1
MsgBox "Bitti"

End Sub
Yukarıda kodlar excel internet veri alabiliyorum.
Excel internet daha hızlı veri çekmek istiyorum. Bunun için çözüm var mıdır?
 
Katılım
19 Mayıs 2017
Mesajlar
35
Excel Vers. ve Dili
makro
Altın Üyelik Bitiş Tarihi
15-02-2025
excel internetten yavaş veri alıyor daha hızlı yöntemi var mıdır?
 
Üst