Merkez Bankası Web Sitesinden Günlük Döviz Kurlarını Almak (Online)

From Belgeleme Projesi

Jump to: navigation, search

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.

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.

Ö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.

Resim:Doviz_Kuru_2.png

  • 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.

Resim:Doviz_Kuru_3.png

  • 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.

Resim:Doviz_Kuru_1.png

  • Dilerseniz E4 hücresindeki ParaBirimi'ni değiştirin ve sonucu izleyin.

Resim:Doviz_Kuru_4.png



--Hakan HAMURCU 02:00, 24 Aralık 2008 (MSK)