sayıyı metne çevirme

Katılım
2 Ağustos 2007
Mesajlar
22
Excel Vers. ve Dili
office 97-2003 / 2007
Arkadaşlar, bir fatura programı oluşturuyorum; ama bana faturada yazdığım sayıyı metne çevirecek formül gerekiyor. Yardımcı olacak arkadaşlara çok teşekkür ederim.
 
Moderatör tarafında düzenlendi:

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Önce sitede aramayı dener misiniz?
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Sayın Uzmanımın da dediği gibi aradığınız kod sitede var...

'Bu fonksiyon kesirli de olsa verilen sayıyı, yazıya çevirir.
'Kullanımı; Excel tablosu içindeki hücreye =Yaziyla(A1) şeklindedir.
'A1 içinde sayı bulunan hücreyi temsil eder. Fonksiyon; Microsoft Excel, Access, Visual Basic ve Quick Basic 'programlarında çalışır.
Function Yaziyla(Sayi#)
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$ = "": onda$ = ""
Say$ = Str$(Sayi#)
virgul% = InStr(1, Say$, ".")
If virgul% Then
Say$ = Right$(Say$, Len(Say$) - virgul%)
Select Case Len(Say$)
Case 6: onda$ = "milyonda"
Case 5: onda$ = "yüzbinde"
Case 4: onda$ = "onbinde"
Case 3: onda$ = "binde"
Case 2: onda$ = "yüzde"
Case 1: onda$ = "onda"
End Select
GoSub cevir
virgul2$ = " virgül " + onda$ + " " + cevap$
cevap$ = ""
Say$ = Str$(Sayi#)
Say$ = Left(Say$, virgul% - 1)
End If
GoSub cevir
Yaziyla = cevap$ + 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ü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%
Return
End Function
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Sayın Uzmanım,

Lütfen ukelalık yaptığımı düşünmeyin...
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Te&#351;ekk&#252;rler soruyu cevaplad&#305;&#287;&#305;n&#305;z i&#231;in, Say&#305;n ECYavuz. Sorulara cevap verme konusunda l&#252;tfen bu &#351;ekilde d&#252;&#351;&#252;nmeyin. Ama, amac&#305;m&#305;z mesaj kirlili&#287;ini ortadan kald&#305;rmak oldu&#287;u i&#231;in, &#252;yelerimizin soru sormadan &#246;nce sitede arama yapmalar&#305;n&#305; d&#252;&#351;&#252;nmekteyiz.
 
Üst