arkadaþlar acceste rakamý yazýya çeviren formülü olan varsa rica ediyorum
botel2005
10-05-2005, 14:28
:eek: Evet bunu benimde öðrenmem gerek yardýmcý olurmusunuz... :kafa:
bende excel arýyorum...3 gündür formu inceliyom bi türlü beceremedim... makroyu kaydediyorum.. ancak yazýlmasýný istediðim hücreye makronun adýný mý yazcam yoksa baþka biþiy mi bi türlü çözemedim... lütfen yardýmcý olurmusunuz??? çok basit bi þekilde anlatýn lütfen.. kafam sulandý çünkü... :kafa: :kafa: :kafa: :kafa: :kafa: :kafa: :kafa: :kafa: :kafa:
bir dosya var. zipli 542 kb. yolluyamýyorum.ne yapmam gerekiyor?
ilgili dosyadaki raporda genel toplamý gerek rakamla gereksede yazýyla ilave edemedim.yardým rica ediyorum
erhan1988
19-05-2005, 11:03
arkadaþlar yazýyý rakama çeviren bir formul var ben bunu visial basic de sürekli kullanýrdým accessdede baþarýlý .Ben bunu raporlarda toplam kayýt sayýsýný yazýyla yazdýrmak için kullanýyordum .artýk siz kullanacaðýnýz yere göre gerekli deðiþiklikleri yaparsýnýz ,bunun için ilk önce yaptýðýnýz projede yeni bir modul açýn ve adýný da " yaziylarakam " olarak deðiþtirin ve aþþaðýdaki kodu içerisine kopyalayýn.......
Function YAZILINUMARA(gelendeger As Double) As String
Dim V_INT As Double
Dim V_SAYI_YAZI_ILE As String
Dim V_TOPLAM_YAZI_ILE As String
Dim V_SAYI As Double
Dim V_SAYI1 As Double
Dim V_SAYI2 As Double
V_SAYI = 0
V_SAYI1 = 0
V_SAYI2 = 0
V_SAYI = gelendeger Mod 10
If V_SAYI = 1 Then
V_SAYI_YAZI_ILE = "BÝR"
ElseIf V_SAYI = 2 Then
V_SAYI_YAZI_ILE = "ÝKÝ"
ElseIf V_SAYI = 3 Then
V_SAYI_YAZI_ILE = "ÜÇ"
ElseIf V_SAYI = 4 Then
V_SAYI_YAZI_ILE = "DÃ?RT"
ElseIf V_SAYI = 5 Then
V_SAYI_YAZI_ILE = "BEÞ"
ElseIf V_SAYI = 6 Then
V_SAYI_YAZI_ILE = "ALTI"
ElseIf V_SAYI = 7 Then
V_SAYI_YAZI_ILE = "YEDÝ"
ElseIf V_SAYI = 8 Then
V_SAYI_YAZI_ILE = "SEKÝZ"
ElseIf V_SAYI = 9 Then
V_SAYI_YAZI_ILE = "DOKUZ"
Else
V_SAYI_YAZI_ILE = ""
End If
V_TOPLAM_YAZI_ILE = V_SAYI_YAZI_ILE + V_TOPLAM_YAZI_ILE
V_SAYI1 = gelendeger - V_SAYI
If gelendeger >= 10 Then
V_SAYI1 = V_SAYI1 Mod 100
If V_SAYI1 = 10 Then
V_SAYI_YAZI_ILE = "ON"
ElseIf V_SAYI1 = 20 Then
V_SAYI_YAZI_ILE = "YÝRMÝ"
ElseIf V_SAYI1 = 30 Then
V_SAYI_YAZI_ILE = "OTUZ"
ElseIf V_SAYI1 = 40 Then
V_SAYI_YAZI_ILE = "KIRK"
ElseIf V_SAYI1 = 50 Then
V_SAYI_YAZI_ILE = "ELLÝ"
ElseIf V_SAYI1 = 60 Then
V_SAYI_YAZI_ILE = "ALTMIÞ"
ElseIf V_SAYI1 = 70 Then
V_SAYI_YAZI_ILE = "YETMÝÞ"
ElseIf V_SAYI1 = 80 Then
V_SAYI_YAZI_ILE = "SEKSEN"
ElseIf V_SAYI1 = 90 Then
V_SAYI_YAZI_ILE = "DOKSAN"
Else
V_SAYI_YAZI_ILE = ""
End If
V_TOPLAM_YAZI_ILE = V_SAYI_YAZI_ILE + V_TOPLAM_YAZI_ILE
End If
V_SAYI2 = gelendeger - (V_SAYI1 + V_SAYI)
If gelendeger >= 100 Then
V_SAYI2 = V_SAYI2 Mod 1000
If V_SAYI2 = 100 Then
V_SAYI_YAZI_ILE = "YÜZ"
ElseIf V_SAYI2 = 200 Then
V_SAYI_YAZI_ILE = "ÝKÝYÜZ"
ElseIf V_SAYI2 = 300 Then
V_SAYI_YAZI_ILE = "ÜÇYÜZ"
ElseIf V_SAYI2 = 400 Then
V_SAYI_YAZI_ILE = "DÃ?RTYÜZ"
ElseIf V_SAYI2 = 500 Then
V_SAYI_YAZI_ILE = "BEÞYÜZ"
ElseIf V_SAYI2 = 600 Then
V_SAYI_YAZI_ILE = "ALTIYÜZ"
ElseIf V_SAYI2 = 700 Then
V_SAYI_YAZI_ILE = "YEDÝYÜZ"
ElseIf V_SAYI2 = 800 Then
V_SAYI_YAZI_ILE = "SEKÝZYÜZ"
ElseIf V_SAYI2 = 900 Then
V_SAYI_YAZI_ILE = "DOKUZYÜZ"
End If
V_TOPLAM_YAZI_ILE = V_SAYI_YAZI_ILE + V_TOPLAM_YAZI_ILE
End If
If gelendeger = 0 Then
V_TOPLAM_YAZI_ILE = "SIFIR"
End If
YAZILINUMARA = V_TOPLAM_YAZI_ILE
End Function
daha sonra da kullanacaðýnýz raporda, ben kullanýlan malzemenin kaç kalem olduðunu göstermek için kullanýyordum ve raporun ayrýntý bölümüne kayýtlarýn baþýna bir boþ metin kutusu açýp adýna da SNO adý verir ve altada rapor altbilgisi bölümüne de yeni bir text kutusu açýp bu kutunun denetim kaynaðýnada
="////////////////// YALNIZ " & YAZILINUMARA([SNO]) & " (" & [SNO] & ") KALEMDÝR. //////////////////"
yazdýðýnýzda rapordaki malzemenin kaç kalem olduðunu rapor altýnda verir siz burada yukarýdaki SNO adýný verdiðimiz rakam kutusunu aþaðýda ki kutu içinde isim deðiþikliðiyle istediðiniz gibi kullanabilirsiniz,inþallah iþinizi görür kolay gelsin :icelim:
Arkadaþ lar yukarýdaki kod iyi çalýþýyor ama eksik tarafý 999 dan sonrasýný çevirmiyor ayný mantýkla ilave yaptým 1000 li ama hata verdi eðer ilgilenen arkadaþ varsa milyarlara kadar uzatmak acaba mümkün mü? bir de þayet lira olarak rakamý yazýya çevirecek olsak virgülden sonrasýný acaba nasýl düzenleriz.
Arkadaþlar yukarýdaki koda ilave kodlar yazmak mümkün deðilmi soruma yardýmcý olursanýz sevinirim.
Slm
Sayýn Raider'in yazdýðý ve Sayýn Jale'nin access için verdiði örneði niye kullanmýyorsunuz.
Buradaki "yaz" fonksiyonu sizin aradýðýnýz.
Rakammetin.zip dosyasýndaki raiderv2 modülünü kopyalayýn.
Bir textboxa =yaz([alanadý]) þeklinde yazarak kullanýn.
Hepsi aþaðýdaki linkte:
http://www.excel.web.tr/viewtopic.php?t=1982&sid=8b53db4750687ed2c5d9a9a02adae7d3
Arkadaþalr access de rakamý yazýya çevirmek için ben aþaðýdaki formu kullanýyorum.
=yaziyacevir([Fatura Tutar]-[Ýade Fatura Bedeli];1)
ancak modül olarak da aþaðýdaki prog yazmak gerekiyor.
Function yaziyacevir(rakam, kucuk)
'veysel emre tarafýndan yapýlmýþtýr
Dim grup(5), sayi(10, 3), basamak(5), oku(3)
sayi(0, 1) = "": sayi(0, 2) = "": sayi(0, 3) = ""
sayi(1, 1) = "YÜZ": sayi(1, 2) = "ON": sayi(1, 3) = "BÝR"
sayi(2, 1) = "ÝKÝYÜZ": sayi(2, 2) = "YÝRMÝ": sayi(2, 3) = "ÝKÝ"
sayi(3, 1) = "ÜÇYÜZ": sayi(3, 2) = "OTUZ": sayi(3, 3) = "ÜÇ"
sayi(4, 1) = "DÃ?RTYÜZ": sayi(4, 2) = "KIRK": sayi(4, 3) = "DÃ?RT"
sayi(5, 1) = "BEÞYÜZ": sayi(5, 2) = "ELLÝ": sayi(5, 3) = "BEÞ"
sayi(6, 1) = "ALTIYÜZ": sayi(6, 2) = "ALTMIÞ": sayi(6, 3) = "ALTI"
sayi(7, 1) = "YEDÝYÜZ": sayi(7, 2) = "YETMÝÞ": sayi(7, 3) = "YEDÝ"
sayi(8, 1) = "SEKÝZYÜZ": sayi(8, 2) = "SEKSEN": sayi(8, 3) = "SEKÝZ"
sayi(9, 1) = "DOKUZYÜZ": sayi(9, 2) = "DOKSAN": sayi(9, 3) = "DOKUZ"
basamak(5) = "TRÝLYON"
basamak(4) = "MÝLYAR"
basamak(3) = "MÝLYON"
basamak(2) = "BÝN"
basamak(1) = ""
lira = Int(rakam)
' Küçük harflerle yazmasý için
If kucuk = 1 Then
For x = 0 To 9
For y = 1 To 3
sayi(x, y) = Replace(sayi(x, y), "ý", "I")
sayi(x, y) = Replace(sayi(x, y), "i", "Ý")
sayi(x, y) = UCase(sayi(x, y))
Next
Next
For y = 2 To 5
basamak(y) = Replace(basamak(y), "ý", "I")
basamak(y) = Replace(basamak(y), "i", "Ý")
basamak(y) = UCase(basamak(y))
Next
End If
kurus = Round(rakam - lira, 2) * 100
If Len(lira) > 15 Then
MsgBox ("Bu fonksiyon en fazla 15 haneli sayýlar için çalýþýr.")
End
End If
kalan = lira
yaziyacevir = ""
For x = 1 To 5
A = 15 - 3 * x
If Len(lira) > A Then
grup(6 - x) = Int(kalan / 10 ^ A)
kalan = kalan - (grup(6 - x) * 10 ^ A)
End If
Next x
If grup(5) > 0 Then
oku(1) = Int(grup(5) / 100)
baskalan = grup(5) - oku(1) * 100
oku(2) = Int(baskalan / 10)
oku(3) = baskalan - oku(2) * 10
yaziyacevir = sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(5)
End If
If grup(4) > 0 Then
oku(1) = Int(grup(4) / 100)
baskalan = grup(4) - oku(1) * 100
oku(2) = Int(baskalan / 10)
oku(3) = baskalan - oku(2) * 10
yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(4)
End If
If grup(3) > 0 Then
oku(1) = Int(grup(3) / 100)
baskalan = grup(3) - oku(1) * 100
oku(2) = Int(baskalan / 10)
oku(3) = baskalan - oku(2) * 10
yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(3)
End If
If grup(2) = 1 Then
yaziyacevir = yaziyacevir + "BÝN"
End If
If grup(2) > 1 Then
oku(1) = Int(grup(2) / 100)
baskalan = grup(2) - oku(1) * 100
oku(2) = Int(baskalan / 10)
oku(3) = baskalan - oku(2) * 10
yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(2)
End If
If grup(1) > 0 Then
oku(1) = Int(grup(1) / 100)
baskalan = grup(1) - oku(1) * 100
oku(2) = Int(baskalan / 10)
oku(3) = baskalan - oku(2) * 10
yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(1)
End If
yaziyacevir = yaziyacevir + " LÝRA."
If kurus > 0 Then
oku(2) = 0
If Len(kurus) > 1 Then
oku(2) = Int(kurus / 10)
End If
oku(3) = kurus - oku(2) * 10
yaziyacevir = yaziyacevir + sayi(oku(2), 2) + sayi(oku(3), 3) + " KURUÞTUR."
End If
End Function
Arkadaþlar exeldeki bir hücrede rakamý nasýl yazýya çevireceðimi anlayamadým. Bir baþka hücredeki rakamý yazýya çevirmem lazým. Yardým ederseniz sevinirim.
Teþekkürler...
vBulletin v3.7.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.