- Katılım
- 3 Kasım 2010
- Mesajlar
- 219
- Excel Vers. ve Dili
- Excel 2016 - Türkçe
Merhaba Arkadaşlar,
Yapmış olduğum çalışmamda makro yardımı ile ve aşağıda ki kodlarla tarihlere göre kurları "May Veri Girişi" sayfamda R sütununa formül yardımı ile geliyor ancak resmi tatil günlerinde sıfır olarak gelmektedir. Resmi tatil günlerinde ve hafta sonu tatillerinde bir önceki günün kurunu almamız ve kullanmamız gerekir. Nasıl yapabiliriz.?
Bu konuda yardımcı olabilirseniz çok memnun olurum.
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 Like "*=""" & Dovtip & "*" Then
sonuclar = Split(temizlik, "</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
https://dosya.co/vrwmo3ya9rdn/FB_Daily_Extra_Report_-_Mayıs_2019.rar.html
Yapmış olduğum çalışmamda makro yardımı ile ve aşağıda ki kodlarla tarihlere göre kurları "May Veri Girişi" sayfamda R sütununa formül yardımı ile geliyor ancak resmi tatil günlerinde sıfır olarak gelmektedir. Resmi tatil günlerinde ve hafta sonu tatillerinde bir önceki günün kurunu almamız ve kullanmamız gerekir. Nasıl yapabiliriz.?
Bu konuda yardımcı olabilirseniz çok memnun olurum.
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 Like "*=""" & Dovtip & "*" Then
sonuclar = Split(temizlik, "</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
https://dosya.co/vrwmo3ya9rdn/FB_Daily_Extra_Report_-_Mayıs_2019.rar.html