Soru İnternet veri çekme

-asus-

Altın Üye
Katılım
19 Mayıs 2017
Mesajlar
31
Excel Vers. ve Dili
makro
Altın Üyelik Bitiş Tarihi
15-02-2025
merhabalar

yapmak istediği şu şekilde olacak

Aşağıda yer alan kodlar internet explorer sayfasını giriliyor ancak ben chrome sayfasını bağlanmak istiyorum hangi kod yazılmalı ve nereli yazılmalı?
kodlar çalışıyor bilginize

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ıç ", , "08.08.2019")
'first = InputBox("Baslangic", , "03/09/2017")
d2 = InputBox("bitiş ", , "21.08.2019")
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
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
"Chrome" olunca ne fark olacak, merak ettim? Zaten, sonuçları IE ile bir şekilde Excel'e alıyorsunuz.

VBA, Microsoft ürünü IE'i destekler ama; Selenium ile yapılabilir belki.

.
 

-asus-

Altın Üye
Katılım
19 Mayıs 2017
Mesajlar
31
Excel Vers. ve Dili
makro
Altın Üyelik Bitiş Tarihi
15-02-2025
daha hızlı veri almak için chrome deneyeceğim o yüzden

selenium kurmuştum hatta referans la kullanabilirim ancak kod nasıl düzeltebilirim?
 
Üst