• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Parayı yazıya çevirme - "birbin" hatası

Katılım
30 Mart 2005
Mesajlar
755
Excel Vers. ve Dili
2016 EN
Merhaba,

Aşağıdaki kodları kulanarak, faturadaki tutarın TL açıklamasını yazdırıyorum. Ancak 1517 gibi binlik hanesinin bir olduğu durumda "birbin beşyüz onyedi" yazıyor. "birbin" ifadesini nasıl "bin" ifadesi ile değiştirebilirim bu kod içinde?

Cevabınız için şimdiden teşekkür ederim.


Function TL_tr(Para, Optional Pbirim = "Lira", Optional Kbirim = "Kurus")
Dim Parastr As String
Dim Lira As String, Kurus As String

If Not IsNumeric(Para) Then
TL_tr = "GIRILEN DEGER SAYI DEGIL!"
Exit Function
End If

Parastr = Format(Abs(Para), "0.00")

Lira = Left(Parastr, Len(Parastr) - 3)
Kurus = Right(Parastr, 2)

TL_tr = IIf(Para < 0, "Eksi ", "") & Cevir(Lira) & " " & Pbirim & " " & _
IIf(Val(Kurus) <> 0, Cevir(Kurus) & " " & Kbirim & " ", "")
End Function
Private Function Cevir(Sayistr As String) As String
Dim Rakam(15)
Dim C(3), Sonuc, E

Birler = Array("", "Bir", "Iki", "Üç", "Dört", "Bes", "Alti", "Yedi", "Sekiz", "Dokuz")
Onlar = Array("", "On", "Yirmi", "Otuz", "Kirk", "Elli", "Altmis", "Yetmis", "Seksen", "Doksan")
Binler = Array("Trilyon", "Milyar", "Milyon", "Bin", "")

Sayistr = String(15 - Len(Sayistr), "0") + Sayistr

For I = 1 To 15
Rakam(I) = Val(Mid$(Sayistr, I, 1))
Next I

Sonuc = ""
For I = 0 To 4
C(1) = Rakam(I * 3 + 1)
C(2) = Rakam(I * 3 + 2)
C(3) = Rakam(I * 3 + 3)
If C(1) = 0 Then
E = ""
ElseIf C(1) = 1 Then
E = "Yüz"
Else
E = Birler(C(1)) + "Yüz"
End If
E = E + Onlar(C(2)) + Birler(C(3))
If E <> "" Then E = E + Binler(I)
If (I = 3) And (E = "Birbin") Then E = "Bin"
Sonuc = Sonuc + E
Next I

If Sonuc = "" Then Sonuc = "Sifir"

Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) - 1)
End Function
 
Merhaba,

Forumda o kadar çok örnek var ki, onları inceleyin.
 
Geri
Üst