AccessTr.neT

Tam Versiyon: Excel Vba İle Döviz Kurlarını Alamıyorum.
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Herkese sağlıklı günler dilerim.
Netteki bir videoda uygulanan şekliyle günlük döviz kurlarını Excel sayfasına çekmeye çalışıyorum.
Kod:
If tablom.Length = 0 Then GoTo cik:

bu kod satırında hata veriyordu. Şu anda hata göstermiyor ama düğmeye bastığınızda makro çalışıyormuş gibi bir süre buton pasif halde kalıyor sonra aktif hale geliyor fakat sonuçta sayfaya bilgiler gelmiyor. Hatanın ne olduğu konusunda bilgi vermenizi rica ederim.

[Resim: do.php?img=11338]
Kod:
Sub Kur()

Dim xml As Object, tablom As Object, adres As String, sat As Byte

'ThisWorkbook.Worksheets("Kurlar").
Range("A2:G100") = ""

Set xml = VBA.CreateObject("MSXML2.DOMDocument")
xml.async = False
xml.validateonparse = False
adres = "https://www.tcmb.gov.tr/kurlar/today/xml"
xml.Load adres

Set tablom = xml.SelectNodes("//Currency")

If tablom.Length = 0 Then GoTo cik:

sat = tablom.Length - 1
For i = 0 To sat

Cells(i + 2, 1) = tablom(i).ChildNodes(1).Text
Cells(i + 2, 2) = tablom(i).ChildNodes(3).Text
Cells(i + 2, 3) = tablom(i).ChildNodes(4).Text
Cells(i + 2, 4) = tablom(i).ChildNodes(5).Text
Cells(i + 2, 5) = tablom(i).ChildNodes(6).Text

Next i

cik:
Set tablom = Nothing: Set xml = Nothing: adres = vbNullString: sat = Empty


End Sub
Merhaba Oğuz Bey
xml dosyasının linkini kontrol edin. xml tablosu TCMB tarafından 15:30'da yayınlanır ve bazen hatalı yüklediği için 404 hatası verir. Kodunuzda tablo uzunluğunuz 0 olursa yordamdan çık dediğiniz için tablo bilgilerini yüklemiyor. Kodunuzu ve xml linkini şimdi kontrol ettim herhangi bir sıkıntı yok.
(12/10/2021, 15:35)atoykan yazdı: [ -> ]Merhaba Oğuz Bey
xml dosyasının linkini kontrol edin. xml tablosu TCMB tarafından 15:30'da yayınlanır ve bazen hatalı yüklediği için 404 hatası verir. Kodunuzda tablo uzunluğunuz 0 olursa yordamdan çık dediğiniz için tablo bilgilerini yüklemiyor. Kodunuzu ve xml linkini şimdi kontrol ettim herhangi bir sıkıntı yok.

404 hatası almadım ama sizde çalıştımı kod @atoykan hocam.
Kod çalışıyor Oğuz Bey sadece linki düzeltmeniz gerekli, kodunuz aşağıdaki gibi revize etmelisiniz
Sub Kur()

Dim xml As Object, tablom As Object, adres As String, sat As Byte

'ThisWorkbook.Worksheets("Kurlar").
Range("A2:G100") = ""

Set xml = VBA.CreateObject("MSXML2.DOMDocument")
xml.async = False
xml.validateonparse = False
adres =  "https://www.tcmb.gov.tr/kurlar/today.xml"    ' "https://www.tcmb.gov.tr/kurlar/today/xml" şeklinde yazmışsınız link hatalı doğrusu yandaki gibi olmalı
xml.Load adres

Set tablom = xml.SelectNodes("//Currency")

If tablom.Length = 0 Then GoTo cik:

sat = tablom.Length - 1
For i = 0 To sat

Cells(i + 2, 1) = tablom(i).ChildNodes(1).Text
Cells(i + 2, 2) = tablom(i).ChildNodes(3).Text
Cells(i + 2, 3) = tablom(i).ChildNodes(4).Text
Cells(i + 2, 4) = tablom(i).ChildNodes(5).Text
Cells(i + 2, 5) = tablom(i).ChildNodes(6).Text

Next i

cik:
Set tablom = Nothing: Set xml = Nothing: adres = vbNullString: sat = Empty


End Sub
(12/10/2021, 17:00)atoykan yazdı: [ -> ]Kod çalışıyor Oğuz Bey sadece linki düzeltmeniz gerekli, kodunuz aşağıdaki gibi revize etmelisiniz
Sub Kur()

Dim xml As Object, tablom As Object, adres As String, sat As Byte

'ThisWorkbook.Worksheets("Kurlar").
Range("A2:G100") = ""

Set xml = VBA.CreateObject("MSXML2.DOMDocument")
xml.async = False
xml.validateonparse = False
adres =  "https://www.tcmb.gov.tr/kurlar/today.xml"    ' "https://www.tcmb.gov.tr/kurlar/today/xml" şeklinde yazmışsınız link hatalı doğrusu yandaki gibi olmalı
xml.Load adres

Set tablom = xml.SelectNodes("//Currency")

If tablom.Length = 0 Then GoTo cik:

sat = tablom.Length - 1
For i = 0 To sat

Cells(i + 2, 1) = tablom(i).ChildNodes(1).Text
Cells(i + 2, 2) = tablom(i).ChildNodes(3).Text
Cells(i + 2, 3) = tablom(i).ChildNodes(4).Text
Cells(i + 2, 4) = tablom(i).ChildNodes(5).Text
Cells(i + 2, 5) = tablom(i).ChildNodes(6).Text

Next i

cik:
Set tablom = Nothing: Set xml = Nothing: adres = vbNullString: sat = Empty


End Sub


onu ilk yazarken farketmiştim ve yeni dosyaya geçirirken düzelttiğimi sanıyordum allah allah. Çok Teşekkür ederim. Vaktinizi aldım.
Rica ederim. İyi çalışmalar