Merhaba Arkadaşlar
Aşağıdaki kod ile tam sayıyı yazıya çevirebiliyoruz ama ondalık sayıyı yazıya çeviremiyoruz.
Ondalık sayıyı yazıya çevirmek istiyorum
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