Merkez Bankası Web Sitesinden Günlük Döviz Kurlarını Almak (Online)
From Belgeleme Projesi
[değiştir]
Merkez Bankası Web Sitesinden Günlük Döviz Kurlarını Almak (Online)
OpenOffice.org Calc programında özellikle muhasebe ve finans alanında ihtiyaç duyulan, "T.C. Merkez Bankası Günlük Döviz Kurları" bilgisinin çevrimiçi olarak Calc tarafından ilgili kurumun web sayfasından alınması işlemini, OpenOffice.org Basic ile yapabiliriz.
Bunun için yapmanız gerekenler sırasıyla;
- Araçlar --> Makrolar --> Makroları düzenle --> OpenOffice.org Basic yolunu izleyerek Makroların listesini açın.
- Ekrana gelen diyalog kutusundan sırasıyla Makrolarım --> Standard --> Module1 seçin.
- Düzenle butonuna basarak OpenOffice.org Basic editörünü çalıştırın.
- Aşağıdaki kodu editörünüze girin.
Function DOVIZKURUNUAL( Tarih As Date, ByVal HedefBirim As String, Kur As Byte, AnaPara As Double ) As Double
On Error Goto Hata
Dim BankaWebAdresi
Dim Dosya
Dim Satir As String
Dim Sonuc As Double
Dim BaslangicTarihi As Date
Dim BitisTarihi As Date
HedefBirim = UCase(HedefBirim)
BaslangicTarihi = "16/04/1996"
BitisTarihi = Date
If (Tarih < BaslangicTarihi) Then
Beep
MsgBox "=DOVIZKURUNUAL( Tarih ; HedefParaBirimi ; KurTuru ; ParaMiktarı )" & Chr(10) & Chr(13) & +_
"16/04/1996 Tarihinden önceki T.C. Merkez Bankası döviz kurları" & Chr(10) & +_
"web sitesine girilmemiştir. Lütfen uygun bir tarih giriniz."
Goto Hata
End If
If (Tarih > BitisTarihi) Then
Beep
MsgBox "=DOVIZKURUNUAL( Tarih ; HedefParaBirimi ; KurTuru ; ParaMiktarı )" & Chr(10) & Chr(13) & +_
"Girilen Tarih için günlük kur kaydı bulunamadı. Lütfen uygun bir tarih giriniz."
Goto Hata
End If
If ((HedefBirim <> "USD") And (HedefBirim <> "AUD") And (HedefBirim <> "DKK") And +_
(HedefBirim <> "EUR") And (HedefBirim <> "GBP") And (HedefBirim <> "CHF") And +_
(HedefBirim <> "SEK") And (HedefBirim <> "CAD") And (HedefBirim <> "KWD") And +_
(HedefBirim <> "NOK") And (HedefBirim <> "SAR") And (HedefBirim <> "JPY") And +_
(HedefBirim <> "BGL") And (HedefBirim <> "SYP") And (HedefBirim <> "JOD") And +_
(HedefBirim <> "ILS") And (HedefBirim <> "RON") And (HedefBirim <> "IRR")) Then
Beep
MsgBox "=DOVIZKURUNUAL( Tarih ; HedefParaBirimi ; KurTuru ; ParaMiktarı )" & Chr(10) & Chr(13) & +_
"Hedef Para Birimi Tanınmıyor ve/veya" & Chr(10) & +_
"T.C. Merkez Bankasında işlem görmüyor." & Chr(10) & +_
"Girilebilecek Para Birimleri aşağıda listelenmiştir." & Chr(10) & +_
"USD, AUD, DKK, EUR, GBP, CHF, SEK, CAD, KWD," & Chr(10) & +_
"NOK, SAR, JPY, BGL, SYP, JOD, ILS, RON, IRR"
Goto Hata
End If
If ((Kur < 1) Or (Kur > 4)) Then
Beep
MsgBox "=DOVIZKURUNUAL( Tarih ; HedefParaBirimi ; KurTuru ; ParaMiktarı )" & Chr(10) & Chr(13) & +_
"Dönüşüm için gerekli olan KUR TÜRÜ bilgisi tanımsız." & Chr(10) & +_
"1:Döviz Alış, 2:Döviz Satış, 3:Efektif Alış, 4:Efektif Satış" & Chr(10) & +_
"Lütfen KUR TÜRÜ parametresini doğru giriniz."
Goto Hata
End If
BankaWebAdresi = "http://www.tcmb.gov.tr/kurlar/" & Year(Tarih) & Format(Month(Tarih),"0#") & "/" & Format(Day(Tarih),"0#") & Format(Month(Tarih),"0#") & Year(Tarih) & ".html"
Dosya = FreeFile()
Open BankaWebAdresi For Input As Dosya
While Not Eof(Dosya)
Line Input #Dosya, Satir
If Left(Satir,3) = HedefBirim Then
If (Tarih < CDate("28/01/2002")) Then
Sonuc = AnaPara / Val(Mid(Satir, 17 + Kur * 10, 10))
ElseIf (Tarih >= CDate("28/01/2002")) Then
Sonuc = AnaPara / Val(Mid(Satir, 17 + Kur * 16, 16))
EndIf
Close #Dosya
DOVIZKURUNUAL() = Sonuc
Exit Function
EndIf
Wend
Close #Dosya
Hata:
DOVIZKURUNUAL() = 0.0
End Function
- Kaydet butonuna basarak editörü kapatın.
- OpenOffice.org Calc programında herhangi bir hücreye aşağıdaki formülü girin
=DOVIZKURUNUAL(Tarih;ParaBirimi;Kur;ParaMiktarı)
- Sonuç olarak Calc sizin adınıza T.C. Merkez Bankası Web Sayfasına giderek vermiş olduğunuz Tarih'teki ilgili ParaBirimi'nin karşılığı olan Kur'u alıp, yine sizin vermiş olduğunuz ParaMiktarı'na bölerek, hesaplamaları yapar ve size sonucu verir.
[değiştir]
Programın sınırları
- T.C. Merkez Bankası 16/04/1996 Tarihinden önceki Döviz Kurlarını web sayfasına girmemiştir. Bu yüzden verebileceğiniz en küçük tarih 16/04/1996 olmalıdır.
- Cumartesi, Pazar ve Resmi tatillere gelen günlerde web sitesinde kur bilgisi yer almamaktadır. Bu yüzden sonuçlar daima 0.0 çıkacaktır.
- Tarih olarak henüz gelmemiş (Bugünden sonraki) bir tarih verilmemelidir. Takdir edersinizki henüz gelmemiş tarihin kur bilgisi olmaz.
- Program ANA PARA BİRİMİ olarak daima YTL (veya yeni yılda çıkacak olan TL veya TRL) kabul etmekte ve verdiğiniz ParaMiktarı'nı YTL varsayarak ilgili Döviz Kur'una çevirmektedir.
- Kur olarak 1 ile 4 arasında bir sayı vermelisiniz. Burada 1 : Döviz Alış, 2 : Döviz Satış, 3 : Efektif Alış, 4 : Efektif Satış'ı temsil etmektedir.
- YTL'nin dönüşümü yapılacak ParaBirimi olarak USD, AUD, DKK, EUR, GBP, CHF, SEK, CAD, KWD, NOK, SAR, JPY, BGL, SYP, JOD, ILS, RON, IRR kullanılabilir.
- Program bazı Tarihlerde bazı ParaBirimleri olmadığından 0.0 sonucunu verecektir.
[değiştir]
Örnek
Şimdi yazdığımız programı çalıştıracağımız bir örnek yapalım.
- Hesap Tablonuzu aşağıdaki şekilde düzenleyin ve yeni oluşturduğunuz Fonksiyonuda aynen girin.
- B7:E7 aralığını işaretleyip, sağ alt köşesindeki karecikten tutarak aşağı doğru formüllerinizi çoğaltarak 13. satıra kadar çekin.
- Sonrasında bilgisayarınızın web sitesine giderek kurları güncellemesini bekleyin. Eğer herhangi bir hata yapmadıysanız aşağıdakine benzer bir görüntü almanız gerekir.
- Dilerseniz E4 hücresindeki ParaBirimi'ni değiştirin ve sonucu izleyin.
--Hakan HAMURCU 02:00, 24 Aralık 2008 (MSK)





