İçeriğe geç

Excel de rakamları yazıya çeviren Visual Basic ile hazırlanmış fonksiyon

10.122 defa okundu

Konu: Programlama

Excel de birçok iş ve işlem için hazır fonksiyonlar bulunmaktadır. Ancak rakamları yazıya çeviren hazır bir fonksiyon bulunmamaktadır. Bu gibi durumlar için kullanıcı tanımlı fonksiyon yazmak gerekir.

Excel de kullanıcı tanımlı fonksiyonlar Visual Basic Programlama dili kullanılarak yazılmaktadır. Aşağıda verilen kodun nereye yazılacağı ve nasıl kullanılacağı açıklanmaktadır.

Excelde Sayfa1 üzerinde farenin sağ tuşuna basılır.

Kod Görüntüle tıklanır

Insert Menüsünden Modüle tıklanır ve bu kısmına aşağıdaki kodlar yapıştırmak gerekmektedir.

VBA · Excel makro
  1. Public Function YaziyaCevir(Rakam As Double) As String
  2. Dim SonucKurus2 As String, Sonuc As Long, Sonuc2 As String, Sonuc3 As String
  3. Dim SonucKurus As String, Sonuc4 As String
  4. If Not IsNumeric(Rakam) Then
  5. YaziyaCevir = "Rakam Hatası!"
  6. Exit Function
  7. End If
  8. If Rakam > 99999999999# Then
  9. YaziyaCevir = "Rakam Çok Büyük!"
  10. Else
  11. Sonuc = Int(Rakam)
  12. If Sonuc = 0 Then
  13. YaziyaCevir = "Sıfır"
  14. Exit Function
  15. End If
  16. Sonuc2 = String(15 - Len(CStr(Sonuc)), "0") & CStr(Sonuc)
  17. If Sayı(Mid(Sonuc2, 1, 3)) <> "" Then Sonuc3 = Sayı(Mid(Sonuc2, 1, 3)) & "Trilyon"
  18. If Sayı(Mid(Sonuc2, 4, 3)) <> "" Then Sonuc3 = Sonuc3 & Sayı(Mid(Sonuc2, 4, 3)) & "Milyar"
  19. If Sayı(Mid(Sonuc2, 7, 3)) <> "" Then Sonuc3 = Sonuc3 & Sayı(Mid(Sonuc2, 7, 3)) & "Milyon"
  20. If Sayı(Mid(Sonuc2, 10, 3)) = "" Then
  21. Sonuc3 = Sonuc3
  22. ElseIf Sayı(Mid(Sonuc2, 10, 3)) = "Bir" Then
  23. Sonuc3 = Sonuc3 & "Bin"
  24. Else
  25. Sonuc3 = Sonuc3 & Sayı(Mid(Sonuc2, 10, 3)) & "Bin"
  26. End If
  27. If Sayı(Mid(Sonuc2, 13, 3)) <> "" Then Sonuc3 = Sonuc3 & Sayı(Mid(Sonuc2, 13, 3))
  28. SonucKurus = CStr(CInt((Rakam - Sonuc) * 100))
  29. SonucKurus2 = String(3 - Len(CStr(SonucKurus)), "0") & CStr(SonucKurus)
  30. SonucKurus3 = Sayı(SonucKurus2)
  31. If SonucKurus3 = "" Then
  32. Sonuctotal = Sonuc3 & "Lira"
  33. Else
  34. Sonuctotal = Sonuc3 & "Lira " & SonucKurus3 & "Kuruş"
  35. End If
  36. YaziyaCevir = Sonuctotal
  37. End If
  38. End Function
  39. Private Function Sayı(Rakam As String) As String
  40. Dim Number(10) As String, Decade(10) As String
  41. Number(1) = "Bir"
  42. Number(2) = "İki"
  43. Number(3) = "Üç"
  44. Number(4) = "Dört"
  45. Number(5) = "Beş"
  46. Number(6) = "Altı"
  47. Number(7) = "Yedi"
  48. Number(8) = "Sekiz"
  49. Number(9) = "Dokuz"
  50. Decade(1) = "On"
  51. Decade(2) = "Yirmi"
  52. Decade(3) = "Otuz"
  53. Decade(4) = "Kırk"
  54. Decade(5) = "Elli"
  55. Decade(6) = "Atmış"
  56. Decade(7) = "Yetmiş"
  57. Decade(8) = "Seksen"
  58. Decade(9) = "Doksan"
  59. Sayı = ""
  60. If Mid(Rakam, 1, 1) = "0" Then
  61. Sayı = ""
  62. ElseIf Mid(Rakam, 1, 1) = "1" Then
  63. Sayı = "Yüz"
  64. Else
  65. Sayı = Number(CInt(Mid(Rakam, 1, 1))) & "Yüz"
  66. End If
  67. If Mid(Rakam, 2, 1) <> "0" Then Sayı = Sayı & Decade(CInt(Mid(Rakam, 2, 1)))
  68. If Mid(Rakam, 3, 1) <> "0" Then Sayı = Sayı & Number(CInt(Mid(Rakam, 3, 1)))
  69. End Function

Fonksiyonun kullanımı

=YaziyaCevir(Hücre Adresi)

Sonuç aşağıdaki gibi olacaktır.

Yazıya Çevir

Örnek Excel dosyasını indirmek için aşağıdaki linke tıklayınız.

Rakamları Yazıya Çevirme Örnek Excel Dosyası

Bu yazıdaki belgeler

Bu yazı işinize yaradı mı?

Programlama konusundaki diğer yazılar

Programlama: 12 yazının tümü →

WhatsApp'ta paylaş

İlgili Yazılar