-
- Destek
-
-
Özel Arama
ozan.ilgun@boun.edu.tr |
![]() |
Ozan İLGÜN yazdı:http://www.excelvba.net/viewtopic.php?f=4&t=31743&hilit=+tcmb
Bu konudaki dosya işinize yarar mı?
ozan.ilgun@boun.edu.tr |
Tarkan VURAL yazdı:Fonksiyonla tarih bazında, hücre içine tek tek belirli bir döviz kurunu almak için aşağıdaki KTF kullanılabilir.
Kullanımı:
- Kod: Tümünü seç
=WebDoviz(Tarih Parametresi, Döviz Cinsi Parametresi, Döviz Değer Parametresi)
Tarih
Döviz kuru tarihi
Döviz Cinsi
Merkez bankasında kullanılan döviz kodlaması. USD, EUR, GBP vb..
Döviz Değerlendirme Tipi
Döviz Alış : 1
Döviz Satış: 2
Efektif Alış : 3
Efektif Satış : 4
- Kod: Tümünü seç
DefVar E
Function Webdoviz(ByVal Tarih As Date, ByVal Dovtip As String, ByVal Tipi As Long) As Variant
Dim gun As String, ay As String, yil As String, path As String, kur As Double
Dim icerik As String, xmlhttp As Object, evn As Variant
Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
Application.Volatile
Dovtip = UCase(Dovtip)
gun = Day(Tarih): ay = Month(Tarih): yil = Year(Tarih)
If Len(gun) = 1 Then gun = "0" & gun
If Len(ay) = 1 Then ay = "0" & ay
path = "http://www.tcmb.gov.tr/kurlar/" & yil & ay & "/" & gun & ay & yil & ".xml"
xmlhttp.Open "GET", path, False
xmlhttp.send "at"
If xmlhttp.Status = 200 Then
icerik = xmlhttp.responseText
temizlik = Split(icerik, "<Currency CrossOrder=")
For y = 0 To UBound(temizlik)
If temizlik(y) Like "*=""" & Dovtip & "*" Then
sonuclar = Split(temizlik(y), "</CurrencyName>")
evn1 = Split(sonuclar(1), "<ForexBuying>")
evn2 = Split(sonuclar(1), "<ForexSelling>")
evn3 = Split(sonuclar(1), "<BanknoteBuying>")
evn4 = Split(sonuclar(1), "<BanknoteSelling>")
Select Case Tipi
Case 1: evn = Split(evn1(1), "</")
Case 2: evn = Split(evn2(1), "</")
Case 3: evn = Split(evn3(1), "</")
Case 4: evn = Split(evn4(1), "</")
End Select
Exit For
End If
Next y
End If
'Kuruş hanesini benim gibi virgül kullananlar için
Webdoviz = Replace(evn(0), ".", ",")
'Kuruş hanesini nokta kullananlar için
'Webdoviz = evn(0)
End Function
y A B C D E F G H I 1 Tarih Usd
Döviz AlışUsd
Döviz SatışUsd
Efektif AlışUsd
Efektif SatışEuro
Döviz AlışEuro
Döviz SatışEuro
Efektif AlışEuro
Efektif Satış2 29.09.2014 2.2789 2.283 2.2773 2.2864 2.8914 2.8966 2.8894 2.9009 3 30.09.2014
Hücre Formül B2 =Webdoviz(A2;"usd";1) C2 =Webdoviz(A2;"usd";2) D2 =Webdoviz(A2;"usd";3) E2 =Webdoviz(A2;"usd";4) F2 =Webdoviz(A2;"eur";1) G2 =Webdoviz(A2;"eur";2) H2 =Webdoviz(A2;"eur";3) I2 =Webdoviz(A2;"eur";4)
Tarkan VURAL yazdı:Evet ajax metotlarıyla geliştirmişler sadece https://www.tcmb.gov.tr/kurlar/today.xml bağlantısı yanıt veriyor.
Tarkan VURAL yazdı:Evet ajax metotlarıyla geliştirmişler sadece https://www.tcmb.gov.tr/kurlar/today.xml bağlantısı yanıt veriyor.
Tarkan VURAL yazdı:Formül hesaplamasını manuel yapabilirsiniz. Elle tetiklediğinizde çalışır.
Tarkan VURAL yazdı:Evet ajax metotlarıyla geliştirmişler sadece https://www.tcmb.gov.tr/kurlar/today.xml bağlantısı yanıt veriyor.
bpeker yazdı:hocam onu nasıl yapıcam buton mu eklemem gerekiyor. yada hangi kodu yazmam gerekiyor satır başına ?
bcagatay75 yazdı:Tarkan Bey,
bu durumda geçmiş tarihli kurlara erişim imkanı yok mu demek bu ajax metoduyla yapılmış site sebebiyle.
Burak Çağatay
Murat OSMA yazdı:Kodlardaki http'yi https yapmak yeterli yani.
Tarkan VURAL yazdı:bpeker yazdı:hocam onu nasıl yapıcam buton mu eklemem gerekiyor. yada hangi kodu yazmam gerekiyor satır başına ?
Formül hesaplamasını Formüller - Hesaplama Seçenekleri sekmesinden elle açıp kapatabilirsiniz. Ya da kodla Application.Calculate özelliğinden yararlanabilirsiniz.bcagatay75 yazdı:Tarkan Bey,
bu durumda geçmiş tarihli kurlara erişim imkanı yok mu demek bu ajax metoduyla yapılmış site sebebiyle.
Burak Çağatay
Bakmak lazım. Belki erişim için bir servis apisi ya da kolay bir link mevcut olabilir.Murat OSMA yazdı:Kodlardaki http'yi https yapmak yeterli yani.
Tarih seçimine göre erişim istiyorlar Murat. Günlük, anlık yeterli değil.
Tarkan VURAL yazdı:Murat OSMA yazdı:Kodlardaki http'yi https yapmak yeterli yani.
Tarih seçimine göre erişim istiyorlar Murat. Günlük, anlık yeterli değil.
DefVar E
Function Webdoviz(ByVal Tarih As Date, ByVal Dovtip As String, ByVal Tipi As Long) As Variant
Dim gun As String, ay As String, yil As String, path As String, kur As Double
Dim icerik As String, xmlhttp As Object, evn As Variant
Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
Application.Volatile
Dovtip = UCase(Dovtip)
gun = Day(Tarih): ay = Month(Tarih): yil = Year(Tarih)
If Len(gun) = 1 Then gun = "0" & gun
If Len(ay) = 1 Then ay = "0" & ay
path = "https://www.tcmb.gov.tr/kurlar/" & yil & ay & "/" & gun & ay & yil & ".xml"
xmlhttp.Open "GET", path, False
xmlhttp.send "at"
If xmlhttp.Status = 200 Then
icerik = xmlhttp.responseText
temizlik = Split(icerik, "<Currency CrossOrder=")
For y = 0 To UBound(temizlik)
If temizlik(y) Like "*=""" & Dovtip & "*" Then
sonuclar = Split(temizlik(y), "</CurrencyName>")
evn1 = Split(sonuclar(1), "<ForexBuying>")
evn2 = Split(sonuclar(1), "<ForexSelling>")
evn3 = Split(sonuclar(1), "<BanknoteBuying>")
evn4 = Split(sonuclar(1), "<BanknoteSelling>")
Select Case Tipi
Case 1: evn = Split(evn1(1), "</")
Case 2: evn = Split(evn2(1), "</")
Case 3: evn = Split(evn3(1), "</")
Case 4: evn = Split(evn4(1), "</")
End Select
Exit For
End If
Next y
End If
'Kuruş hanesini benim gibi virgül kullananlar için
Webdoviz = Replace(evn(0), ".", ",")
'Kuruş hanesini nokta kullananlar için
'Webdoviz = evn(0)
End Function
Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir