İNTERNETTEN VERİ ÇEKME

yamahato

Altın Üye
Katılım
20 Mayıs 2009
Mesajlar
231
Excel Vers. ve Dili
excel 2007
Merhaba günaydın herkese sorunumu çözmeme yardımcı olabilir misiniz?
 

yamahato

Altın Üye
Katılım
20 Mayıs 2009
Mesajlar
231
Excel Vers. ve Dili
excel 2007
Ben bir kişinin benim sıkıntıma yardım edeceğine eminim.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Kod:
Sub Dongu()

Do
    Call Doviz
    Application.Wait (Now + TimeValue("0:15:00"))

Loop
End Sub
Sub Doviz()
On Error Resume Next
Dim IE

 Columns("A:A").Select
 Selection.ClearContents
 Range("A1").Select

   Set IE = CreateObject("InternetExplorer.Application")
   IE.navigate "https://www.doviz.com/"
   Do While IE.readyState <> READYSTATE_COMPLETE
    Application.StatusBar = "Loading website…"
    DoEvents
   Loop

sat = 1
For Each htmlElement In IE.document.getElementsByTagName("span")
 Range("A" & sat).Value = Replace(htmlElement.innerText, ",", ".")
 sat = sat + 1
Next
End Sub
 
Katılım
24 Nisan 2005
Mesajlar
3,652
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Loop içinde DoEvents kullanılması yararlı olabilir.
 
Katılım
5 Ocak 2020
Mesajlar
73
Excel Vers. ve Dili
2007
Ustalarım https://www.doviz.com/ isimli internet sitesinde üst taraftaki yatırım araçlarının anlık fiyatlarını ve değişim oranlarını
excel sayfamda ki ilgili hücrelere (her 15 dakikada bir güncellenecek şekilde) almak istiyorum. Yardımcı olabilir misiniz?
Yukardaki dosyanın doğru dosya olduğuna eminmisiniz? bana ilgisiz gibi geldi.
 

yamahato

Altın Üye
Katılım
20 Mayıs 2009
Mesajlar
231
Excel Vers. ve Dili
excel 2007
Kod:
Sub Dongu()

Do
    Call Doviz
    Application.Wait (Now + TimeValue("0:15:00"))

Loop
End Sub
Sub Doviz()
On Error Resume Next
Dim IE

Columns("A:A").Select
Selection.ClearContents
Range("A1").Select

   Set IE = CreateObject("InternetExplorer.Application")
   IE.navigate "https://www.doviz.com/"
   Do While IE.readyState <> READYSTATE_COMPLETE
    Application.StatusBar = "Loading website…"
    DoEvents
   Loop

sat = 1
For Each htmlElement In IE.document.getElementsByTagName("span")
Range("A" & sat).Value = Replace(htmlElement.innerText, ",", ".")
sat = sat + 1
Next
End Sub

Sayın hocam yanlış dosya için özür dilerim. Doğrusu budur. Kodları u dosyaya yerleştireceğiz.
 

Ekli dosyalar

Katılım
5 Ocak 2020
Mesajlar
73
Excel Vers. ve Dili
2007
Aşağıdaki dosyayı açınca, otomatik olarak 15 dakikada bir verileri alır.
Şimdi yenile butonuna tıklarsanız o an veri yenilenir.
Zaman aralığını değiştirmek isterseniz Thisworbook kısmındaki kodu, AutoTime = Now + TimeSerial(0, 15, 0) kısmındaki 15'i istediğiniz bir rakamla değiştirebilirsiniz.
Birde şu an piyasalar bitcoin hariç kapalı, açılınca sitedeki kodlar değişirmi bilmiyorum.
 

Ekli dosyalar

yamahato

Altın Üye
Katılım
20 Mayıs 2009
Mesajlar
231
Excel Vers. ve Dili
excel 2007
Aşağıdaki dosyayı açınca, otomatik olarak 15 dakikada bir verileri alır.
Şimdi yenile butonuna tıklarsanız o an veri yenilenir.
Zaman aralığını değiştirmek isterseniz Thisworbook kısmındaki kodu, AutoTime = Now + TimeSerial(0, 15, 0) kısmındaki 15'i istediğiniz bir rakamla değiştirebilirsiniz.
Birde şu an piyasalar bitcoin hariç kapalı, açılınca sitedeki kodlar değişirmi bilmiyorum.
Ustam dolar ve euro ve sterlin değerleri hatalı gösteriyor.
Yatırım Aracı Fiyat %Değişim Fark
GRAM ALTIN 532,6 %0,59 3,13
DOLAR ₺92.945,00 %-0,39 -0,04 Normalde 9,2945 göstermesi gerekiyor
EURO 108.376 %-0,12 ( -₺0,01 ) Normalde 10,8376 göstermesi gerekiyor
STERLİN 128.240 %0,01 0 Normalde 12,8240 göstermesi gerekiyor
BIST 100 1,432 %1,02 14,45
BITCOIN $61.831,62 %0,09 $56,83
GÜMÜŞ 7,11 %2,23 0,16
FAİZ 18,47 %0,00 0
 
Son düzenleme:
Katılım
5 Ocak 2020
Mesajlar
73
Excel Vers. ve Dili
2007
Merhaba, aslında verileri doğru alıyor ama nedense 9,2945 yerine 92.945 olarak gösteriyor yani noktalama hatası.
İlgili hücreleri metin olarak biçimlendirdim olay çözüldü.Dosya aşağıdadır
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,271
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Verilerin "hızlı" ve "sayısal" olarak alındığı alternatif dosya ektedir....

.
 

Ekli dosyalar

Katılım
9 Ocak 2011
Mesajlar
354
Excel Vers. ve Dili
2007 Türkçe
Verilerin "hızlı" ve "sayısal" olarak alındığı alternatif dosya ektedir....

.
Merhaba Haluk bey
Daha önce Altın Piyasa sayfası ile yaptığınız dosya çalışıyordu bu çalışmadı bende hata veriyor..
Gördüğüm kadariyle aradaki fark diğerinde "objHTTP" kullanmışsınız bunda "HTTP"
"objHTTP" ye göre uyarlamak mümkünmü.

İyi çalışmalar
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,271
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Dosya çalışıyor, sıkıntı yok .... sizde verdiği hata mesajı nedir ve hangi satırda ?

.
 
Katılım
9 Ocak 2011
Mesajlar
354
Excel Vers. ve Dili
2007 Türkçe
Dosya çalışıyor, sıkıntı yok .... sizde verdiği hata mesajı nedir ve hangi satırda ?

.
Merhaba
Ben IExplorer sebepli Securitiy HTTP yani HTTPS bağlantılarında uzun zamandır sıkıntı yaşıyorum
Bu sebepten başka Browser kullanıyorum. Çok uğraştım çözemedim. Hata büyük ihtimalle bu sebepten.
Aşağıdaki Dosyanızda bağlantı HTTP olduğundan problemsiz çalışıyor.

230995
 

Ekli dosyalar

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,271
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
İşin o kısmını önceki mesajlarda belirtildiği gibi "OnTime" metodunu düzgün bir şekilde kullanarak halledebilirsiniz....

.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,271
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Aşağıdaki yöntemle başka bir siteden yine benzer veriler alınabilmektedir.

Kodun içerisinde belirttiğim yerde, otomatik güncellemeyi yapabilirsiniz.

Örnek;

C#:
.RefreshPeriod = 15
Verileri ilk defasında aldıktan sonra, tablonun üzerinde sağ tıklayıp "Güncelle" menüsünü tıklarsanız, istediğiniz herhangibir an tablonuz güncellenir.


C#:
Sub Test()
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;https://www.bloomberght.com/finansal-teknoloji", Destination:=Range("$A$1"))
        .Name = "Piyasalar"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
       
        'Otomatik güncelleme için aşağıdaki satıra dakika cinsinden değer yazın...
        .RefreshPeriod = 0
       
        .WebSelectionType = xlSpecifiedTables
        .WebTables = 1
       
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub

.
 
Son düzenleme:
Üst