excel formül

simurgzer
05-06-2007, 13:48   |  #1  
OP Yeni Üye
Teşekkür Sayısı: 0
41 mesaj
Kayıt Tarihi:Kayıt: Şub 2004

Excelde rakamla 595,65 şeklinde yazdığım bir veriyi başka bir hücrede yazı olarak (beşyüzdoksanbeşytlaltmışbeşkuruş) gibi yazman için hangi formülü kullanırız?

Yardımlarınızı bekliyorum.

Son Düzenleme: Serkan Karadaş ~ 05 Haziran 2007 19:29
gdemir
05-02-2009, 00:21   |  #2  
Yeni Üye
Teşekkür Sayısı: 0
21 mesaj
Kayıt Tarihi:Kayıt: Nis 2007

Buyrun boyle bı ornek vardı elımde bıraz gec oldu ama belkı baska arkadasların ısıne yarar :)


Kodlar :
Function Yaziyla(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 YTL As String
    Dim YKR As String
   
    If Sayi# = 0 Then Yaziyla = "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 = ""
    Yaziyla = 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