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