• Merhaba Ziyaretçi.
    "Yapay Zeka Objektif " Fotoğraf Yarışması başladı. İlgili konuya  BURADAN  ulaşabilirsiniz. Sizi de bu yarışmada görmek isteriz...

excell de rakamları yazıya çevirme makrosu

biz

Aktif
Arkadaşlar excell de rakamları makroyla yazıya çevirmek mümkün bende bu makrovardı kaybettim şöyle bir makro buldum hata veriyor düzelte bilirseniz memnun olurum
Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v(15)
Dim c(3)

Function Yaziyla$(sayi1)

TamSayi = Int(sayi1)
KusurSayi = Val(Right(Format(sayi1, "0.00"), 2))

If KusurSayi <> 0 Then
Yaziyla = YaziylaYaz(TamSayi) & "-YTL-" & YaziylaYaz(KusurSayi) & "-YKr-"
Else
Yaziyla = YaziylaYaz(TamSayi) & "-YTL-"
End If

End Function

Function YaziylaYaz$(sayi)
b$(0) = ""
b$(1) = "Bir"
b$(2) = "İki"
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$ = "BirBin") Then e$ = "Bin"
s$ = s$ + e$
Next x

If s$ = "" Then s$ = "Sıfır"
If pozitif = 0 Then s$ = "Eksi" + s$
YaziylaYaz$ = s$
GoTo tamam
hata: YaziylaYaz$ = "Hata"
tamam:
End Function
 
Arkadaşlar execllde 1-500 000 sayısını yazıya çewirmek için ne yapmalıyım. Yardım edebilecek var mı ? Ama makro olmayacak...... şimdiden tşkler
 
Top