• DİKKAT

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

Tutarı yazıyla yazdırırken

Katılım
17 Aralık 2008
Mesajlar
6
Excel Vers. ve Dili
2003 eng
Function YYaziyla(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 TL As String
Dim KR As String

If Sayi# = 0 Then YYaziyla = "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 = ""

'AŞAĞIDAKİ 2 SATIRDAKİ ÇİFT TIRNAK İÇERİĞİNİ DEĞİŞTİREREK
'VEYA ÇİFT TIRNAĞIN ARASINI SİLEREK "" VEYA "," GİBİ
'İSTEĞİNİZ SONUCUN ÇIKMASINI SAĞLAYABİLİRSİNİZ.
TL = ".-TL., "
KR = ".-KR."

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

'Aşağadaki satır 26,4 Yirmialtı TL, KIRK KR olarak okutur.
' (Yirmialtı TL, DÖRT KR olarak değil)
'İptal etmek isterseniz başına bir ' tek tırnak işareti koyunuz
If Len(Mid(Say, virgul + 1)) = 1 Then Say = Say + "0"

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

If cevap = "" Then KR = ""
virgul2 = cevap + KR
cevap = ""

Say = Str$(Sayi#)
Say = Left$(Say, virgul - 1)
End If
GoSub cevir
If cevap = "" Then TL = ""
YYaziyla = cevap + TL + 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
If Sayi# < 0 Then cevap = "-Eksi-" + cevap
Return
End Function

yukardaki kodu kullanıyorum. yanlız TOPLAM TUTAR 300,00 olmasına rağmen
yazıyla yazarken ÜçYüz .TL.,Otuzİki.Kr.
şeklinde yazıyor çünkü asıl toplam tutar 300,0032
küsüratı hücrede göstermiyor ama arka tarafta hesaplarken dikkate alıyor sanırım. bunu nasıl engelleyebilirim.

yardımlarınız için teşekkür ederim.
 
toplam tutar 300,0032
küsüratı hücrede göstermiyor
:Küsüratı görmek için hücre biçimlendirmede sayı kategorisinde ondalık basamk sayısını 4 yapınız.
İyi çalışmalar
 
üstad yanlış anladınız
küsüratı görmek istemiyorum zaten mesele o...
o yüzden iki basamak göster diye ayarladım.
ama yazıya döken macro bunu anlamıyor sanırım...
yazı sadece son iki kuruş basamağını yazsın istiyorum..

acaba genel toplamı virgülden sonra sadece 2 basamağa yuvarlatmak için bir formül mü gerekiyor....?
 
Say = Right$(Say, Len(Say) - virgul)

yukarıdaki yordamın hemen altına aşağıdaki yordamıda ekle sorunun çözülecektir
Say = Mid(Say, 1, 2)
 
bunu aşağıya veya yukarıya yuvarlama işiylede yapabilirsiniz
örnek A1 hücresindeki bir sayıyı B1 hücresine aşağıdaki formülü uygularsanızda olur

=YYaziyla(TABANAYUVARLA(A1;0,01))
 
allah razı olsun......:)
teşekkür ederim.

bu arada yuvarlama işlemi ingilizce windowsta da aynı değil dimi komut?
 
üstad birde başına "Yalnız" text olarak eklemek istiyorum faturada yazmak için. onu nereye yazayım?
 
şimdi bir yorum yapamıyacağım örnek dosyanı gönder orada cözüm bulmaya çalışalım
 
en yukarda yazdıgım script i kullanıyorum.
onun içerisinde bir yere YALNIZ yazabilir miyim?
böylece tutarı yazıyla yazarken başına yalnız kelimesini koysun?
böyle bir komut yoksa hiç uğraştırmıyım sizi
 
YYaziyla = cevap + TL + virgul2

yukarıdaki olay yordomının yerine aşağıdaki yordamı yazarsan dediğin gibi olur

YYaziyla = "Yalnız : " + cevap + TL + virgul2
 
dostum bu kodda hangi hücreye o işi yaptırdığını nasıl belirliyosun yan kodu sayfaya ekledim ama hangi hüceredeki rakamı hangi hücerey yazacak onu nereden ayarladın off.2007 kullanıyorum
 
Geri
Üst