• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Tefas.gov.tr'den değer almak

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Enes Recep BAĞ

Yeni Üye
Katılım
9 Nis 2021
Mesajlar
27
Çözümler
3
Aldığı beğeni
49
Excel V
Office 2013 TR
Merhaba,
Aşağıdaki belirttiğim siteden, fiyat çekmek istiyorum, yardımcı olabilir misiniz?
Kod:
Private Sub CommandButton1_Click()
Set baglan = CreateObject("internetexplorer.application")
With baglan

.navigate "https://www.tefas.gov.tr/FonAnaliz.aspx"
    .Visible = True
   For i = 2 To Range("A65536").End(3).Row
    .navigate "https://www.tefas.gov.tr/FonAnaliz.aspx"
   Do While .Busy: DoEvents: Loop
                                        Do While Not .ReadyState = 4: DoEvents: Loop
    .document.getElementById("TextBoxFund").Value = Cells(i, 1)
    .document.getElementsByName("button")(0).Click
    Cells(i, 2) = "" 'Son 1 ay getiri alanını almak istiyorum.
Next i
End With
baglan.Quit
End Sub
 

Ekli dosyalar

  • Tefas.gov.tr.xlsm
    Tefas.gov.tr.xlsm
    19.3 KB · Gösterim: 101
  • Son 1 ay.png
    Son 1 ay.png
    21.3 KB · Gösterim: 48
Çözüm
Merhaba,
Aşağıdaki kodlarla çözüme ulaşabildim, ihtiyacı olan kullanıcılar için paylaşıyorum.
Kod:
Sub EVN()

Set baglan = CreateObject("internetexplorer.application")

With baglan


    .navigate "https://www.tefas.gov.tr/FonAnaliz.aspx"

    .Visible = True

   For i = 1 To Sayfa27.Range("A65536").End(3).Row

    .navigate "https://www.tefas.gov.tr/FonAnaliz.aspx?FonKod=" & Sayfa27.Cells(i, 1)

Do While .Busy: DoEvents: Loop

Do While Not .ReadyState = 4: DoEvents: Loop


    d = .document.getElementById("MainContent_PanelInfo").innertext

    kacinci = InStrRev(d, "Son 1 Ay Getirisi") + 17

    fon = Mid(d, kacinci, 12)

  Sayfa27.Cells(i, 2) = fon

Next i
End With
Sayfa27.Cells.Replace What:=Chr(10), Replacement:="", LookAt:=xlPart...
Dosya ekdedir yanlız her tahvil ismi için web sayfası açılıp kapatılarak veri alınıyor kodlarla bu yüzden biraz yavaş gitmek zorunda ..
 

Ekli dosyalar

Merhaba,
Aşağıdaki kodlarla çözüme ulaşabildim, ihtiyacı olan kullanıcılar için paylaşıyorum.
Kod:
Sub EVN()

Set baglan = CreateObject("internetexplorer.application")

With baglan


    .navigate "https://www.tefas.gov.tr/FonAnaliz.aspx"

    .Visible = True

   For i = 1 To Sayfa27.Range("A65536").End(3).Row

    .navigate "https://www.tefas.gov.tr/FonAnaliz.aspx?FonKod=" & Sayfa27.Cells(i, 1)

Do While .Busy: DoEvents: Loop

Do While Not .ReadyState = 4: DoEvents: Loop


    d = .document.getElementById("MainContent_PanelInfo").innertext

    kacinci = InStrRev(d, "Son 1 Ay Getirisi") + 17

    fon = Mid(d, kacinci, 12)

  Sayfa27.Cells(i, 2) = fon

Next i
End With
Sayfa27.Cells.Replace What:=Chr(10), Replacement:="", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

baglan.Quit

End Sub
 
Çözüm
Dosya ekdedir yanlız her tahvil ismi için web sayfası açılıp kapatılarak veri alınıyor kodlarla bu yüzden biraz yavaş gitmek zorunda ..
Artemiz paylaşımınız için teşekkürler, elinize sağlık.

Sn. oilgun un alternatif çözüm örneği de şöyle

C#:
Cells(i, 2) = .document.getElementsByClassName("price-indicators")(0).getElementsByTagName("ul")(0).getElementsByTagName("li")(0).getElementsByTagName("span")(0).innertext
 
Aşağıdaki şekilde de çekebilirsiniz.
Kod:
Private Sub CommandButton1_Click()
Set baglan = CreateObject("internetexplorer.application")

With baglan

    .navigate "https://www.tefas.gov.tr/FonAnaliz.aspx"
    .Visible = True
   For i = 2 To Range("A65536").End(3).Row
    .navigate "https://www.tefas.gov.tr/FonAnaliz.aspx"
   Do While .Busy: DoEvents: Loop
                                        Do While Not .ReadyState = 4: DoEvents: Loop
    .document.getElementById("TextBoxFund").Value = Cells(i, 1)
    .document.getElementsByName("button")(0).Click
    Application.Wait (Now + TimeValue("00:00:03"))
    Cells(i, 2) = .document.getelementsbyclassname("price-indicators")(0).getElementsByTagName("span")(0).innertext   'Son 1 ay getirir 
Next i
End With
baglan.Quit
End Sub
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst