FORMÜL

Katılım
16 Temmuz 2006
Mesajlar
188
Excel Vers. ve Dili
xp profesional 2002
yazıyla ytl formülünü giriyorum. fakat 952,65 ytl yi sonunu dört yazıyor.
yazıyla makrosununda yuvarlama yapanı varmı?
 
Katılım
3 Nisan 2005
Mesajlar
347
Excel Vers. ve Dili
office xp tr
Birde bunu deneyiniz.
'YAZIYLA YTL VE KRŞ YE ÇEVİR =YAZIYLAYTL(A1)
Function YAZIYLAYTL(sayi As Currency, Optional tür As Byte = 0)
Dim tam$
Dim küsur$
Dim syazi As String
Dim v As Byte, s$

If IsNumeric(sayi) And Len(Format(Int(sayi))) < 16 Then
If sayi < 0 Then
syazi = "Eksi "
sayi = Abs(sayi)
End If
s = Format(sayi)
v = InStr(s, ",")
'If v = 0 Then v = InStr(s, ".")
If v <> 0 Then
tam = Left(s, v - 1)
küsur = Left(Mid(s, v + 1, 2) & "0", 2)
Else
tam = s
küsur = "0"
End If
syazi = syazi & yçevir(tam) & " YTL "
If tür = 0 Or (tür = 2 And küsur <> 0) Then
syazi = syazi & yçevir(küsur) & " YKR"
End If
Else
syazi = "Hata"
End If
YAZIYLAYTL = syazi
End Function

Function yçevir(sayi As String)
Dim birler, onlar, bsayi
Dim rakamlar(1 To 15) As Byte
Dim yazi As String, syazi As String
Dim uz As Byte
Dim m
Dim bs As Byte
Dim art As Byte
Dim rakam As Byte

birler = Array("", "Bir", "İki", "Üç", "Dört", "Beş", "Altı", "Yedi", "Sekiz", "Dokuz")
onlar = Array("", "On", "Yirmi", "Otuz", "Kırk", "Elli", "Altmış", "Yetmiş", "Seksen", "Doksan")
bsayi = Array("", "Bin ", "Milyon ", "Milyar ", "Trilyon ")

uz = Len(sayi)
For m = uz To 1 Step -1
art = art + 1
rakamlar(art) = Val(Mid(sayi, m, 1))
Next
For bs = 1 To uz
art = bs Mod 3
rakam = rakamlar(bs)
yazi = ""
Select Case art
Case 1
yazi = birler(rakam) & bsayi(Int(bs / 3))
If uz = 4 And yazi = "BirBin " Then yazi = "Bin "
Case 2
yazi = onlar(rakam)
Case 0
If rakam = 0 Then
yazi = ""
ElseIf rakam = 1 Then
yazi = "Yüz"
Else
yazi = birler(rakam) & "Yüz"
End If
End Select
syazi = yazi & syazi
Next
If syazi = "" Then
syazi = "Sıfır"
Else
syazi = Replace(syazi, " Bin ", "")
syazi = Replace(syazi, " Milyar ", "")
syazi = Replace(syazi, " Milyon ", "")
End If
yçevir = syazi
End Function
 
Üst