ondalık sayıyı yazıya çevirebilirmiyiz????

Katılım
28 Nisan 2005
Mesajlar
252
Excel Vers. ve Dili
Excel 2010 Türkçe
Merhaba Arkadaşlar
Aşağıdaki kod ile tam sayıyı yazıya çevirebiliyoruz ama ondalık sayıyı yazıya çeviremiyoruz.
Kod:
Function yaz$(sayi)
'sayıyı yazıya çeviren macro
'
Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v(15)
Dim c(3)

b$(0) = ""
b$(1) = "bir "
b$(2) = "iki "
b$(3) = "üç "
b$(4) = "dört "
b$(5) = "beş "
b$(6) = "altı "
b$(7) = "yedi "
b$(8) = "sekiz "
b$(9) = "dokuz "

y$(0) = ""
y$(1) = "on "
y$(2) = "yirmi "
y$(3) = "otuz "
y$(4) = "kırk "
y$(5) = "elli "
y$(6) = "altmış "
y$(7) = "yetmiş "
y$(8) = "seksen "
y$(9) = "doksan "

m$(0) = "trilyon "
m$(1) = "milyar "
m$(2) = "milyon "
m$(3) = "bin "
m$(4) = ""

a$ = Str(sayi)

If Left$(a$, 1) = " " Then pozitif = 1 Else pozitif = 0
  a$ = Right$(a$, Len(a$) - 1)
For x = 1 To Len(a$)
  If (Asc(Mid$(a$, x, 1)) > Asc("9")) Or (Asc(Mid$(a$, x, 1)) _
      < Asc("0")) Then GoTo hata
Next x

If Len(a$) > 15 Then GoTo hata
a$ = String(15 - Len(a$), "0") + a$

For x = 1 To 15
  v(x) = Val(Mid$(a$, x, 1))
Next x

s$ = ""
For x = 0 To 4
  c(1) = v((x * 3) + 1)
  c(2) = v((x * 3) + 2)
  c(3) = v((x * 3) + 3)
  If c(1) = 0 Then
    e$ = ""
  ElseIf c(1) = 1 Then
    e$ = "yüz "
  Else
    e$ = b$(c(1)) + "yüz "
  End If
  e$ = e$ + y$(c(2)) + b$(c(3))
  If e$ <> "" Then e$ = e$ + m$(x)
  If (x = 3) And (e$ = "bir Bin ") Then e$ = "bin "
  s$ = s$ + e$
Next x

If s$ = "" Then s$ = "sıfır "
If pozitif = 0 Then s$ = "Eksi " + s$

yaz$ = s$
GoTo tamam
hata: yaz$ = "Hata"
tamam:
End Function
Ondalık sayıyı yazıya çevirmek istiyorum
 
Katılım
28 Nisan 2005
Mesajlar
252
Excel Vers. ve Dili
Excel 2010 Türkçe
teşekkürler
kodları yazanlara ve bunları bizim kullanımımıza sunan sizlere teşekkür ediyorum.
 
Üst