• DİKKAT

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

sayıyı yazıya çevirme

Katılım
15 Kasım 2006
Mesajlar
80
Excel Vers. ve Dili
ofis 2003 Tr
sayıyı yazıya çeviren bir fonksiyona ihtiyacım var para birimi değil direk sayıyı yazıya çevirecek
 
yanlış hatırlamıyorsam Sn mehmett'in bu konu ile ilgili bir çalışması vardı.
eper zaman oldu, başlığı hatırlamıyorum. bir bakayım, bulabilirsem buraya linki yazarım.
 
sayı yazı

sn cobanoglu ekteki dosyayı örnek uygulamalar ve linkler bölümünde buldum. sn entropy tr hazırlamış. umarım işinize yarar. sn entropy tr ye çok teşekkürler.
 
Yaziyla

Function Yaziyla(Sayi#)
Dim virgul2 As String
Dim cevap As String
Dim yazi As String
Dim Say As String
Dim uclu As String
Dim virgul As Integer
Dim o As Integer
Dim b As Integer
Dim x As Integer
Dim i As Integer
Dim y As Integer
Dim YTL As String
Dim YKR As String

If Sayi# = 0 Then Yaziyla = "Sıfır": Exit Function

ReDim birler$(10), onlar$(10), basamak$(5)

birler$(0) = "": birler$(1) = "Bir"
birler$(2) = "İki": birler$(3) = "Üç"
birler$(4) = "Dört": birler$(5) = "Beş"
birler$(6) = "Altı": birler$(7) = "Yedi"
birler$(8) = "Sekiz": birler$(9) = "Dokuz"

onlar$(0) = "": onlar$(1) = "On"
onlar$(2) = "Yirmi": onlar$(3) = "Otuz"
onlar$(4) = "Kırk": onlar$(5) = "Elli"
onlar$(6) = "Altmış": onlar$(7) = "Yetmiş"
onlar$(8) = "Seksen": onlar$(9) = "Doksan"

basamak$(1) = "": basamak$(2) = "Bin "
basamak$(3) = "Milyon ": basamak$(4) = "Milyar "
basamak$(5) = "Trilyon "

virgul2 = ""
cevap = ""
YTL = ".-YTL., "
YKR = ".-YKR."

Say = Str$(Sayi#)
virgul = InStr(1, Say, ".")
If virgul Then

If Len(Mid(Say, virgul + 1)) = 1 Then Say = Say + "0"

Say = Right$(Say, Len(Say) - virgul)
GoSub cevir

If cevap = "" Then YKR = ""
virgul2 = cevap + YKR
cevap = ""

Say = Str$(Sayi#)
Say = Left$(Say, virgul - 1)
End If
GoSub cevir
If cevap = "" Then YTL = ""
Yaziyla = cevap + YTL + virgul2
Exit Function

cevir:
x = Len(Say)
Say = String$(3 - (x - Int(x / 3) * 3), 48) + Say
x = Len(Say) / 3
For i = 1 To x
uclu = Mid$(Say, Len(Say) - i * 3 + 1, 3)
y = Val(Mid$(uclu, 1, 1))
o = Val(Mid$(uclu, 2, 1))
b = Val(Mid$(uclu, 3, 1))

yazi = ""
If y <> 0 Then
If y > 1 Then yazi = birler$(y)
yazi = yazi + "Y&#252;z "
End If

yazi = yazi + onlar$(o) + birler$(b)

If yazi <> "" Then
If LCase(yazi) = "bir" And i = 2 Then yazi = ""
cevap = yazi + basamak$(i) + cevap
End If
Next i
If Sayi# < 0 Then cevap = "-Eksi-" + cevap
Return
End Function





ara&#231;lar - makro - visual basic d&#252;zenleyici - sayfa 1 &#231;ift t&#305;kla - genaral bl&#252;m&#252;ne ekteki dosyay&#305; kopayala daha sonra kapatabilirsin &#351;ifresi =Yaziyla(h&#252;cre ad&#305;) yaz&#305;nca istedi&#287;in say&#305;y&#305; yaz&#305;ya &#231;evirir.
 
Bende bu konuda bir dosya eklemek istiyorum.
999 milyarı yazıya çeviriyor.
Bu konunun forumda daha önce işlendiğini düşünüyorum.
 
Geri
Üst