Sayıdan yazıya

Katılım
1 Haziran 2016
Mesajlar
50
Excel Vers. ve Dili
Office 2013-Türkçe 64 Bit
Merhaba,
Forumda yaptığım aramalarda sayıyı yazıya çevirme konusunda birçok örnek buldum. Bana en kolay gelen örneği aldım ama sayıları yanlış yazıyor. Örneğin 75 sayısını Yetmişdört olarak yazıyor.
Koddaki hatayı bulamadım. Hatayı düzeltme konusunda yardımcı olabilir misiniz?
Teşekkürler.
Kod:
Public Function Yaz(AA)
Dim AAStr As String
Dim BB As String
If Not IsNumeric(AA) Then GoTo SayiDegil
AAStr = Format(Abs(AA), "0.00")
BB = Left(AAStr, Len(AAStr) - 3)
Yaz = IIf(AA < 0, "Eksi ", "") & Cevir(BB)
Exit Function
SayiDegil:
Yaz = "GİRİLEN DEĞER SAYI DEĞİL!"
End Function

Private Function Cevir(SayiStr As String) As String
Dim Rakam(15)
Dim c(3), Sonuc, e

Birler = Array("", "bir", "iki", "üç", "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", "")

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 = "00"
If Sonuc = "" Then Sonuc = " "

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

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Kod düzenli çalışıyor
bu kodu bir hücrenin içine 74 yaz ve başka bir hücreyede 75 yaz gözlemle

şöyle olabilir formül sonucu 75 gibi görünebilir ama 74,123456789 diye gidebilir ondan kaynaklanıyor olabilir
hücreleri biçimlendir den sayı sekmesini ondalık bölümünü çoğalt ne demek istediğimi anlayacaksın
 
Katılım
1 Haziran 2016
Mesajlar
50
Excel Vers. ve Dili
Office 2013-Türkçe 64 Bit
Çok teşekkürler,
Sorun sizin dediğiniz gibiymiş.
=Yuvarla(........;0) fonksiyonunu kullanarak çözdüm.
 
Üst