Gönderen Konu: Rakamı yazıya çevirme  (Okunma sayısı 28 defa)

Çevrimdışı admin

  • Site Kurucusu
  • *******
  • İleti: 890
  • Cinsiyet: Bay
    • Profili Görüntüle
    • E-Posta
  • Cinsiyeti: Erkek
  • Kurumu: Tarım Bakanlığı
  • Doğum tarihi: 1969
  • Nerden: Düzce
  • Ünvanı: Vet. Sağlık Teknikeri
Rakamı yazıya çevirme
« : 14 Ocak 2022, 09:33:05 »
Kod: [Seç]
Public Function metin(AA)
Dim AAStr As String
Dim BB As String

If Not IsNumeric(AA) Then GoTo SayiDegil

AAStr = Format(Abs(AA), "0.00")

BB = Left(AAStr, Len(AAStr) - 3)

metin = IIf(AA < 0, "Eksi ", "") & Cevir(BB)

Exit Function

SayiDegil:
metin = "GİRİLEN DEĞER SAYI DEĞİL!"
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 = "00"

Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) - 1)
End Function
Kullanımı
=metin(Hücre değeri)
Örnek
=metin(A1)