• DİKKAT

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

Sayıdan yazıya

  • Konbuyu başlatan Konbuyu başlatan omemo
  • Başlangıç tarihi Başlangıç tarihi
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
 
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
 
Çok teşekkürler,
Sorun sizin dediğiniz gibiymiş.
=Yuvarla(........;0) fonksiyonunu kullanarak çözdüm.
 
Geri
Üst