Skip to main content

AccessTr.neT


Tefas.gov.tr Veri Çekme Çalışması

Tefas.gov.tr Veri Çekme Çalışması

Çözüldü #1
merhabalar
araştırmalar sonucu tefas.gov.tr den excelle nasıl veri çekilir çalışması yaptım. yaptım ama bir kaç eksiği gideremedim bu konuda yardımınızı bekliyorum

günlük getiri sütunu her veri yüklemesinde yenileniyor karışık bir liste halinde geliyor
örnek %0,0000 sayı olarak gelmesi gerekirken veriler bu tarz geliyor
%2,86
496,3400
49634%

bu kod satırına ne yazmam gerekiyor ki böyle veri gelsin %0,0000
'Günlük Getiri
Sheets("Fon").Range("E" & i) = htmldoc.getElementsByTagName("span")(4).innerText


teşekkür ederim yardımlarınız için


kod bilgileri ve Excel dosyası
Kod:
Sub F()

Dim i, sonsat As Integer
Dim url As String
Dim h As Integer
Dim j As Integer
Dim a As String


Dim xmlreq As New MSXML2.XMLHTTP60
Dim htmldoc As New MSHTML.HTMLDocument


sonsat = Sheets("Fon").Range("A10000").End(xlUp).Row

For i = 6 To sonsat

On Error Resume Next


url = Sheets("Fon").Range("A" & i)

xmlreq.Open "GET", url, False

xmlreq.send

If xmlreq.Status <> 200 Then

MsgBox "Sayfaya Ulaşılamadı"

Exit Sub
End If

htmldoc.body.innerHTML = xmlreq.responseText

'FON Başlık
Sheets("Fon").Range("C" & i) = htmldoc.getElementById("MainContent_FormViewMainIndicators_LabelFund").innerText
'FON FİYAT
Sheets("Fon").Range("D" & i) = htmldoc.getElementsByTagName("span")(3).innerText
'FON KOD
  Sheets("Fon").Range("B" & i) = htmldoc.getElementsByClassName("fund-profile-item")(0).innerText
'Günlük Getiri
Sheets("Fon").Range("E" & i) = htmldoc.getElementsByTagName("span")(4).innerText
'Kategori
Sheets("Fon").Range("F" & i) = htmldoc.getElementsByTagName("span")(7).innerText
Next




End Sub

.zip FONmatik2.zip (Dosya Boyutu: 58,05 KB | İndirme Sayısı: 7)
Cevapla
#2
Merhaba Sayın @maboc

kodunuzu aşağıdaki gibi güncelleyin.
Dim i As Integer, sonsat As Integer, h As Integer, j As Integer, a As String
Dim url As String
Dim xmlreq As Object
Dim htmldoc As New MSHTML.HTMLDocument

Set xmlreq = CreateObject("MSXML2.XMLHTTP.6.0")
sonsat = Sheets("Fon").Range("A10000").End(xlUp).Row

For i = 6 To sonsat
On Error Resume Next

url = Sheets("Fon").Range("A" & i)
xmlreq.Open "GET", url, False
xmlreq.send

If xmlreq.Status <> 200 Then
MsgBox "Sayfaya Ulaşılamadı"
Exit Sub
End If

htmldoc.body.innerHTML = xmlreq.responseText
'FON Başlık
Sheets("Fon").Range("C" & i) = htmldoc.getElementById("MainContent_FormViewMainIndicators_LabelFund").innerText
'FON FİYAT
Sheets("Fon").Range("D" & i) = htmldoc.getElementsByTagName("span")(3).innerText
'FON KOD
Sheets("Fon").Range("B" & i) = htmldoc.getElementsByClassName("fund-profile-item")(0).innerText
'Günlük Getiri
Dim günlük_getiri As String, temiz_günlük_getiri As String, tveri As Double
günlük_getiri = htmldoc.getElementsByTagName("span")(4).innerText
temiz_günlük_getiri = Replace(günlük_getiri, "%", "")
tveri = CDbl(temiz_günlük_getiri)
Sheets("Fon").Range("E" & i).Value = tveri / 100
Sheets("Fon").Range("E" & i).NumberFormat = "0.00000%"
'Kategori
Sheets("Fon").Range("F" & i) = htmldoc.getElementsByTagName("span")(7).innerText
Next
Cevapla
#3
(23/03/2024, 23:31)atoykan yazdı: Merhaba Sayın @maboc

kodunuzu aşağıdaki gibi güncelleyin.
Dim i As Integer, sonsat As Integer, h As Integer, j As Integer, a As String
Dim url As String
Dim xmlreq As Object
Dim htmldoc As New MSHTML.HTMLDocument

Set xmlreq = CreateObject("MSXML2.XMLHTTP.6.0")
sonsat = Sheets("Fon").Range("A10000").End(xlUp).Row

For i = 6 To sonsat
On Error Resume Next

url = Sheets("Fon").Range("A" & i)
xmlreq.Open "GET", url, False
xmlreq.send

If xmlreq.Status <> 200 Then
MsgBox "Sayfaya Ulaşılamadı"
Exit Sub
End If

htmldoc.body.innerHTML = xmlreq.responseText
'FON Başlık
Sheets("Fon").Range("C" & i) = htmldoc.getElementById("MainContent_FormViewMainIndicators_LabelFund").innerText
'FON FİYAT
Sheets("Fon").Range("D" & i) = htmldoc.getElementsByTagName("span")(3).innerText
'FON KOD
Sheets("Fon").Range("B" & i) = htmldoc.getElementsByClassName("fund-profile-item")(0).innerText
'Günlük Getiri
Dim günlük_getiri As String, temiz_günlük_getiri As String, tveri As Double
günlük_getiri = htmldoc.getElementsByTagName("span")(4).innerText
temiz_günlük_getiri = Replace(günlük_getiri, "%", "")
tveri = CDbl(temiz_günlük_getiri)
Sheets("Fon").Range("E" & i).Value = tveri / 100
Sheets("Fon").Range("E" & i).NumberFormat = "0.00000%"
'Kategori
Sheets("Fon").Range("F" & i) = htmldoc.getElementsByTagName("span")(7).innerText
Next

teşekkür ederim yardımınız allah razı olsun
Cevapla
#4
Rica ederim, iyi çalışmalar.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task