tcmb.gov.tr'den dövizleri çekmek
Gönderilme zamanı: 16 May 2017, 16:15
Merhabalar,
tcmb.gov.tr'den döviz kurlarını çekmek istiyoruz. Bunun ile ilgili aşağıdaki linkte güzel bir örnek bulduk.
http://wiki.libreoffice.org.tr/Nas%C4%B ... 4%B1_Almak
Yanlız macro kodlarını tarif edilen yere yapıştırıp çalıştırdığım zaman hata aldım.
"Basic, Standard.Module1.DOVIZKURUNUAL betiği çalıştırılırken, betik dili çatı hatası oluştu.
Mesaj: wrong number of parameters!"
ilgili kodu yapıştırdığım metin alanı şu şekilde.
REM ***** BASIC *****
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
Teşekkürler.
tcmb.gov.tr'den döviz kurlarını çekmek istiyoruz. Bunun ile ilgili aşağıdaki linkte güzel bir örnek bulduk.
http://wiki.libreoffice.org.tr/Nas%C4%B ... 4%B1_Almak
Yanlız macro kodlarını tarif edilen yere yapıştırıp çalıştırdığım zaman hata aldım.
"Basic, Standard.Module1.DOVIZKURUNUAL betiği çalıştırılırken, betik dili çatı hatası oluştu.
Mesaj: wrong number of parameters!"
ilgili kodu yapıştırdığım metin alanı şu şekilde.
REM ***** BASIC *****
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
Teşekkürler.