Nasıl:Merkez Bankası İnternet Sitesinden Günlük Döviz Kurlarını Almak
Libreoffice Türkiye Vikisi sitesinden
Dennisroczek (Mesaj | katkılar) tarafından oluşturulmuş 14:29, 17 Kasım 2018 tarihli sürüm
LibreOffice 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, LibreOffice Basic ile yapabiliriz.
Makronun Ayarlanması
Bunun için yapmanız gerekenler sırasıyla;
- Araçlar --> Makrolar --> Makroları düzenle --> LibreOffice 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 LibreOffice 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.
- LibreOffice Calc programında herhangi bir hücreye aşağıdaki formülü girin
=DOVIZKURUNUAL(Tarih;ParaBirimi;Kur;ParaMiktarı)
Dikkat!: Bu formülde yer alan değerlerli ilgili hücrelere tanıtmalısınız. Örneğin çalışma sayfanızda:
- Tarih: A1 hücresinde,
- Para Birimi: A2 hücresinde,
- Kur: 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. Bu da A3 hücresinde
- Para Miktarı: A4 hücresindeyse,
Bu verilere göre yaptırmak istediğiniz kur hesaplamasını herhangi bir hücreye:
=DOVIZKURUNUAL(A1;A2;A3;A4)
formülünü girip, o tarihteki paranın döviz karşığını alabilirsiniz.
- 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.
- 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.
Writer | Calc | Impress | Base | Draw | Math |