Sub KurAl()
On Error GoTo hata
Dim xmldoc, DovizListesi, Dovizler As Object
Dim SorguTarihi As Date
Dim HaftaSonu, GDoviz, GDovizCins As String
Set xmldoc = CreateObject("Msxml.DOMDocument")
xmldoc.async = False
SorguTarihi = Me.tofatura_tarihi
HaftaSonu = Weekday(tofatura_tarihi, vbMonday)
If HaftaSonu = 7 Then
SorguTarihi = DateAdd("d", -2, SorguTarihi)
ElseIf HaftaSonu = 6 Then
SorguTarihi = DateAdd("d", -1, SorguTarihi)
End If
xmldoc.Load "http://www.tcmb.gov.tr/kurlar/" & Format(SorguTarihi, "yyyymm") & "/" & Format(SorguTarihi, "ddmmyyyy") & ".xml"
Set DovizListesi = xmldoc.documentElement.selectNodes("Currency")
GDoviz = Me.tofatura_doviztip
If GDoviz = "€" Then
GDovizCins = "EURO"
ElseIf GDoviz = "$" Then
GDovizCins = "ABD DOLARI"
End If
For Each Dovizler In DovizListesi
If Eval("'" & Dovizler.SelectSingleNode("Isim").Text & "' In('" & GDovizCins & "')") Then
Me.tofatura_kur = Replace(Dovizler.SelectSingleNode("ForexSelling").Text, ".", ",")
End If
Next
hata:
If Err.Number = "91" Then
If MsgBox(" " & DateAdd("d", -3, Me.tofatura_tarihi) & " tarihine ait veri alınsın mı", vbYesNo) = vbYes Then
SorguTarihi = DateAdd("d", -3, Me.tofatura_tarihi)
HaftaSonu = Weekday(tofatura_tarihi, vbMonday)
If HaftaSonu = 7 Then
SorguTarihi = DateAdd("d", -2, SorguTarihi)
ElseIf HaftaSonu = 6 Then
SorguTarihi = DateAdd("d", -1, SorguTarihi)
End If
xmldoc.Load "http://www.tcmb.gov.tr/kurlar/" & Format(SorguTarihi, "yyyymm") & "/" & Format(SorguTarihi, "ddmmyyyy") & ".xml"
Set DovizListesi = xmldoc.documentElement.selectNodes("Currency")
GDoviz = Me.tofatura_doviztip
If GDoviz = "€" Then
GDovizCins = "EURO"
ElseIf GDoviz = "$" Then
GDovizCins = "ABD DOLARI"
End If
For Each Dovizler In DovizListesi
If Eval("'" & Dovizler.SelectSingleNode("Isim").Text & "' In('" & GDovizCins & "')") Then
Me.tofatura_kur = Replace(Dovizler.SelectSingleNode("ForexSelling").Text, ".", ",")
End If
Next
End If
End If
Set xmldoc = Nothing
End Sub
Kodu aşağıdaki ile değiştirerek deneyiniz.