• DİKKAT

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

Çözüldü Rakamı yazıya çevirme

Katılım
11 Mayıs 2006
Mesajlar
708
Excel Vers. ve Dili
Ofis 2016 64 Bit Türkçe
ekteki tabloda yazılan rakamları yazıya çevirme (fonksiyonlu) şimdiden ellerinize ve emeklerinize sağlık
 

Ekli dosyalar

Merhaba,

Forumumuzda bu talebinizle ilgili ayrı bir bölüm var. İncelemenizde fayda var..

 
Excel sayfasında iken Alt+F11 tuşları ile İnsert/Module ile aşağıdaki kod kopyalanıp yapıştırılır

Function ParaCevir(Para, Optional PBirim = "Lira", Optional KBirim = "Kuruş")
Dim ParaStr As String
Dim Lira As String, Kurus As String

If Not IsNumeric(Para) Then
ParaCevir = "GİRİLEN DEĞER SAYI DEĞİL!"
Exit Function
End If

ParaStr = Format(Abs(Para), "0.00")

Lira = Left(ParaStr, Len(ParaStr) - 3)
Kurus = Right(ParaStr, 2)

ParaCevir = IIf(Para < 0, "Eksi ", "") & Cevir(Lira) & " " & PBirim & " " & _
IIf(Val(Kurus) <> 0, Cevir(Kurus) & " " & KBirim & " ", "")
End Function
Private Function Cevir(SayiStr As String) As String
Dim Rakam(15)
Dim c(3), Sonuc, e

Birler = Array("", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz")
Onlar = Array("", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan")
Binler = Array("trilyon", "milyar", "milyon", "bin", "")

SayiStr = String(15 - Len(SayiStr), "0") + SayiStr

For i = 1 To 15
Rakam(i) = Val(Mid$(SayiStr, i, 1))
Next i

Sonuc = ""
For i = 0 To 4
c(1) = Rakam(i * 3 + 1)
c(2) = Rakam(i * 3 + 2)
c(3) = Rakam(i * 3 + 3)
If c(1) = 0 Then
e = ""
ElseIf c(1) = 1 Then
e = "yüz"
Else
e = Birler(c(1)) + "yüz"
End If
e = e + Onlar(c(2)) + Birler(c(3))
If e <> "" Then e = e + Binler(i)
If (i = 3) And (e = "birbin") Then e = "bin"
Sonuc = Sonuc + e
Next i
If Sonuc = "" Then Sonuc = "Sıfır"

Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) - 1)
End Function

Excel sayfasında Paraçevir işlevinin ekleneceği hücreye;
=ParaCevir(Hücre Adresi) yazılarak, çalıştırılır.
 
Excel sayfasında iken Alt+F11 tuşları ile İnsert/Module ile aşağıdaki kod kopyalanıp yapıştırılır

Function ParaCevir(Para, Optional PBirim = "Lira", Optional KBirim = "Kuruş")
Dim ParaStr As String
Dim Lira As String, Kurus As String

If Not IsNumeric(Para) Then
ParaCevir = "GİRİLEN DEĞER SAYI DEĞİL!"
Exit Function
End If

ParaStr = Format(Abs(Para), "0.00")

Lira = Left(ParaStr, Len(ParaStr) - 3)
Kurus = Right(ParaStr, 2)

ParaCevir = IIf(Para < 0, "Eksi ", "") & Cevir(Lira) & " " & PBirim & " " & _
IIf(Val(Kurus) <> 0, Cevir(Kurus) & " " & KBirim & " ", "")
End Function
Private Function Cevir(SayiStr As String) As String
Dim Rakam(15)
Dim c(3), Sonuc, e

Birler = Array("", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz")
Onlar = Array("", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan")
Binler = Array("trilyon", "milyar", "milyon", "bin", "")

SayiStr = String(15 - Len(SayiStr), "0") + SayiStr

For i = 1 To 15
Rakam(i) = Val(Mid$(SayiStr, i, 1))
Next i

Sonuc = ""
For i = 0 To 4
c(1) = Rakam(i * 3 + 1)
c(2) = Rakam(i * 3 + 2)
c(3) = Rakam(i * 3 + 3)
If c(1) = 0 Then
e = ""
ElseIf c(1) = 1 Then
e = "yüz"
Else
e = Birler(c(1)) + "yüz"
End If
e = e + Onlar(c(2)) + Birler(c(3))
If e <> "" Then e = e + Binler(i)
If (i = 3) And (e = "birbin") Then e = "bin"
Sonuc = Sonuc + e
Next i
If Sonuc = "" Then Sonuc = "Sıfır"

Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) - 1)
End Function

Excel sayfasında Paraçevir işlevinin ekleneceği hücreye;
=ParaCevir(Hücre Adresi) yazılarak, çalıştırılır.

Sayın Hocam bir sorum olacak. Bu fonksiyonlarda yazıların arasında boşluk olmuyor. Bu Muhasebe kuralı mı yoksa fonksiyon yazarken önemsenmeyen bir durum mu?
Yani sayıları yazıya dökerken:


123546.05​

Yüzyirmiüçbinbeşyüzkırkaltı Lira Beş Kuruş

123546.05​

Yüz yirmi üç bin beş yüz kırk altı Lira Beş Kuruş
Hangisi Muhasebe olarak doğru yazım
 
Sayın Hocam bir sorum olacak. Bu fonksiyonlarda yazıların arasında boşluk olmuyor. Bu Muhasebe kuralı mı yoksa fonksiyon yazarken önemsenmeyen bir durum mu?
Yani sayıları yazıya dökerken:


123546.05​


Yüzyirmiüçbinbeşyüzkırkaltı Lira Beş Kuruş


123546.05​


Yüz yirmi üç bin beş yüz kırk altı Lira Beş Kuruş
Hangisi Muhasebe olarak doğru yazım
TDK ya göre parayı yazı olarak ifade ettiğimzide arada boşluk olmaz bitişik yazılır. (Sonradan değiştirilme ve oynama olmasın diye)

Para ile ilgili işlemlerle senet, çek vb. ticari belgelerde geçen sayılar bitişik yazılır: 650,35 (altıyüzelliTL,otuzbeşkr.)
 
Geri
Üst