sayıyı yazıya çevirme

Kodla Büyü

gkyzdprmlr

Aktif Üye
Mesajlar
202
ekteki dosyada en altta hata var. hata yazan yere O34 hücresindeki sayı harfle yazılacak. yardımcı olabileck olan arkadaş var mı?
 

Ekli dosyalar

  • Emekli_Yo...rar
    80.5 KB · Görüntüleme: 119
virgülden sonraki ondalık kısımdan kaynaklanıyor gibi görünüyor. Yaz formülünde ondalık kısmı yazdırmak için bir satır yok.
 
Alt+F11e basıp makro düzenleyiciye giriyoruz.
Soldaki listeden önce var olan modülleri silin.
Insert menüsünden Modüle seçip aşağıdaki 2 modülü ayrı ayrı oluşturuyoruz.
Kaydediyoruz.

module 1:
Function ParaCevir(Para)
Dim ParaStr As String
Dim Lira As String, Kurus As String

If Not IsNumeric(Para) Then GoTo SayiDegil

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

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

ParaCevir = IIf(Para < 0, "Eksi ", "") & Cevir(Lira) & " Lira " & Cevir(Kurus) & " Kuruş"

Exit Function

SayiDegil:
ParaCevir = "GİRİLEN DEÃ?ER SAYI DEÃ?İL!"
End Function


MODUL 2:
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 = "Sıfır"

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


yazıyla yazılacak hücredeki formul: "=ParaCevir(SayıOlanHücre)" yazınca oluyor.

Alıntıdır.
 
Geri
Üst