• DİKKAT

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

Ondalıklı Sayıyı Yazıya Çeviren Program AMA YTL İçin Değil

Katılım
27 Mayıs 2006
Mesajlar
10
Arkadaşlar, hepinizden Allah razı olsun çok güzel çözümler sunmuşsunuz. Bir tane de bana lazım. Sitede bir çok sayıyı yazıya çeviren program (kod) var ama bana YTL için değil, Notlar için "ondalıklı sayıları yazıya çeviren" program lazım.
Birkaç örnek vereyim. 4 için Dört yazacak (bu basit), 4,45 için Dört Kırk Beş yazacak (bu da basit), Zor olan ise 4,00 için Dört Sıfır Sıfır yazması ve 4,02 için Dört İki DEĞİL, Dört Sıfır İki yazacak.
Önemli olan bir diğer nokta kodun 4 ile 4,00 sayılarını ayırt edip birine Dört diğerine Dört Sıfır Sıfır yazabilmesidir.

Bulduğum programlar (kodlar) ytl ve ykr için olduğundan 4,02 yi Dört İki yazıyor, bana Dört Sıfır İki yazan lazım. HEMDE BİRAZ ACİLL. Şimdiden Teşekkürlerimi Sunarım.
:dua:
 
Aşağıdaki fonksiyonu denermisiniz.

[vb:1:b8ad19a519]Function yaziyla(sayi)
On Error Resume Next
Dim deg(3), s(3), deger(2)
a = Array("", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz")
b = Array("", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan")
c = Array("", "", "bin", "milyon", "milyar", "trilyon")
deger(1) = Int(sayi)
deger(2) = Round(sayi - deger(1), 2) * 100
If sayi = 0 Then son = "sıfır"
For g = 1 To 2
yazi = deger(g)
For d = 1 To Len(yazi) Step 3
e = e + 1
deg(1) = Mid(yazi, Len(yazi) - d - 1, 1)
deg(2) = Mid(yazi, Len(yazi) - d, 1)
deg(3) = Mid(yazi, Len(yazi) - d + 1, 1)
If deg(1) <> 0 Then s(1) = Replace(a(deg(1)) & "yüz", "biryüz", "yüz")
s(2) = b(deg(2))
s(3) = a(deg(3)) & c(e)
If deg(1) + deg(2) + deg(3) = 0 Then s(3) = ""
son = s(1) & s(2) & s(3) & son
If Left(son, 6) = "birbin" Then son = Replace(son, "birbin", "bin")
For f = 1 To 3
deg(f) = ""
s(f) = ""
Next: Next
If g = 1 And deger(1) <> 0 Then ytl = son & " "
If deger(1) = 0 Then ytl = "sıfır"
If deger(2) < 10 Then yaz = "sıfır"
If g = 2 And deger(2) <> 0 Then ykr = " " & yaz & son
son = ""
e = 0
Next
yaziyla = ytl & ykr
End Function
[/vb:1:b8ad19a519]
 
Arkadaşım senin kodları ekledim.
bir kaç hata meydana geldi.
Örneğin 2,22 sayısını "iki 22yirmiki" şeklinde yazıyor ve 0,47 sayısınıda Sıfır Kırk Yedi yazacağına sadece "kırkyedi" yazıyor.
 
Yukarıdaki kodu yeniledim tekrar deneyin.
 
Sayın leventm, çok teşekkür ediyorum. sadece 3,00 gibi sayıları "üç sıfır sıfır" yazmıyor "üç" olarak yazıyor ama bende öyle kullanacam artık. geri kalan herşey problemsiz çalışıyor. emeğin için teşekkürler. Allah Razı Olsun.
 
Konu a&#231;&#305;lal&#305; uzun zaman olmu&#351; ama, &#351;unu sormak istiyorum ayn&#305; kodlar&#305; excel 2003 de denedim fakat, YKR ve YTL eklerini yazmad&#305;. Neyi eksik yap&#305;yorum?
 
Geri
Üst