rakamı yazıya çevirme

Katılım
6 Nisan 2005
Mesajlar
150
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:
 
Katılım
10 Mayıs 2005
Mesajlar
7
ilgili dosyadaki raporda genel toplamı gerek rakamla gereksede yazıyla ilave edemedim.yardım rica ediyorum
 
Katılım
16 Mayıs 2005
Mesajlar
12
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:
 
Katılım
24 Ocak 2005
Mesajlar
252
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.
 
Katılım
24 Ocak 2005
Mesajlar
252
Arkadaşlar yukarıdaki koda ilave kodlar yazmak mümkün değilmi soruma yardımcı olursanız sevinirim.
 
Katılım
27 Aralık 2005
Mesajlar
9
Excel Vers. ve Dili
Excel 2003 pro
Access de rakamı yazıya çevirme

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
 
Katılım
3 Nisan 2006
Mesajlar
1
Excel Vers. ve Dili
2007 Türkçe
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...
 
Üst