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
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
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.
 
Katılım
11 Mart 2006
Mesajlar
597
Excel Vers. ve Dili
ms office 2010 ev
ms office 2007 iş
Altın Üyelik Bitiş Tarihi
08.01.2019
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.
 
Katılım
11 Mart 2006
Mesajlar
597
Excel Vers. ve Dili
ms office 2010 ev
ms office 2007 iş
Altın Üyelik Bitiş Tarihi
08.01.2019
acele etti dosya ektedir.
 
Katılım
29 Eylül 2004
Mesajlar
25
Excel Vers. ve Dili
OFFİCE 2003 TR
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.
 
Katılım
26 Aralık 2005
Mesajlar
29
Excel Vers. ve Dili
2007 türkçe
Bende bu konuda bir dosya eklemek istiyorum.
999 milyarı yazıya çeviriyor.
Bu konunun forumda daha önce işlendiğini düşünüyorum.
 
Üst