kemal turan
Altın Üye
- Katılım
- 10 Haziran 2011
- Mesajlar
- 1,676
- Excel Vers. ve Dili
- Excel 2010 32 bit
- Altın Üyelik Bitiş Tarihi
- 06-10-2032
Merhaba,
Aşağıdaki kod sayıyı yazıya çevir kodudur. Forumdan aldım.
4 rakamlı binler sayısının başına "bir" yazsını fazla ekliyor.
Örnek: 1112 rakamını "Bir Bin Yüz On İki LİRA" olarak yazıyor.
Düzeltemedim.
Yardımınızı rica ediyorum
Teşekkürler
Aşağıdaki kod sayıyı yazıya çevir kodudur. Forumdan aldım.
4 rakamlı binler sayısının başına "bir" yazsını fazla ekliyor.
Örnek: 1112 rakamını "Bir Bin Yüz On İki LİRA" olarak yazıyor.
Düzeltemedim.
Yardımınızı rica ediyorum
Teşekkürler
Kod:
Function YAZIYAÇEVİR(Para, Optional PBirim = "LİRA", Optional KBirim = "KURUŞ")
Dim ParaStr As String
Dim Lira As String, Kuruş As String
If Not IsNumeric(Para) Then
YAZIYAÇEVİR = "#DEĞER!"
Exit Function
End If
ParaStr = Format(Abs(Para), "0.00")
Lira = Left(ParaStr, Len(ParaStr) - 3)
Kuruş = Right(ParaStr, 2)
YAZIYAÇEVİR = IIf(Para < 0, "Eksi ", "") & ÇEVİR(Lira) & " " & PBirim & " " & _
IIf(Val(Kuruş) <> 0, ÇEVİR(Kuruş) & " " & KBirim & " ", "")
End Function
Private Function ÇEVİR(SayıStr As String) As String
Dim Rakam(15)
Dim C(3), Sonuç, E
Birler = Array("", " Bir ", " İki ", " Üç ", " Dört ", " Beş ", " Altı ", " Yedi ", " Sekiz ", " Dokuz ")
Onlar = Array("", " On ", " Yirmi ", " Otuz ", " Kırk ", " Elli ", " Altmış ", " Yetmiş ", " Seksen ", " Doksan ")
Binler = Array(" Trilyon ", " Milyar ", " Milyon ", " Bin ", "")
SayıStr = String(15 - Len(SayıStr), "0") + SayıStr
For i = 1 To 15
Rakam(i) = Val(Mid$(SayıStr, i, 1))
Next i
Sonuç = ""
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 = "Bir ") Then E = "Bin"
Sonuç = Sonuç + E
Next i
If Sonuç = "" Then Sonuç = "Sıfır"
ÇEVİR = UCase(Mid(Sonuç, 1, 1)) + Mid(Sonuç, 2, Len(Sonuç) - 1)
End Function