Excel de rakamları yazıya çeviren Visual Basic ile hazırlanmış fonksiyon
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.
Public Function YaziyaCevir(Rakam As Double) As String
Dim SonucKurus2 As String, Sonuc As Long, Sonuc2 As String, Sonuc3 As String
Dim SonucKurus As String, Sonuc4 As String
If Not IsNumeric(Rakam) Then
YaziyaCevir = "Rakam Hatası!"
Exit Function
End If
If Rakam > 99999999999# Then
YaziyaCevir = "Rakam Çok Büyük!"
Else
Sonuc = Int(Rakam)
If Sonuc = 0 Then
YaziyaCevir = "Sıfır"
Exit Function
End If
Sonuc2 = String(15 - Len(CStr(Sonuc)), "0") & CStr(Sonuc)
If Sayı(Mid(Sonuc2, 1, 3)) <> "" Then Sonuc3 = Sayı(Mid(Sonuc2, 1, 3)) & "Trilyon"
If Sayı(Mid(Sonuc2, 4, 3)) <> "" Then Sonuc3 = Sonuc3 & Sayı(Mid(Sonuc2, 4, 3)) & "Milyar"
If Sayı(Mid(Sonuc2, 7, 3)) <> "" Then Sonuc3 = Sonuc3 & Sayı(Mid(Sonuc2, 7, 3)) & "Milyon"
If Sayı(Mid(Sonuc2, 10, 3)) = "" Then
Sonuc3 = Sonuc3
ElseIf Sayı(Mid(Sonuc2, 10, 3)) = "Bir" Then
Sonuc3 = Sonuc3 & "Bin"
Else
Sonuc3 = Sonuc3 & Sayı(Mid(Sonuc2, 10, 3)) & "Bin"
End If
If Sayı(Mid(Sonuc2, 13, 3)) <> "" Then Sonuc3 = Sonuc3 & Sayı(Mid(Sonuc2, 13, 3))
SonucKurus = CStr(CInt((Rakam - Sonuc) * 100))
SonucKurus2 = String(3 - Len(CStr(SonucKurus)), "0") & CStr(SonucKurus)
SonucKurus3 = Sayı(SonucKurus2)
If SonucKurus3 = "" Then
Sonuctotal = Sonuc3 & "Lira"
Else
Sonuctotal = Sonuc3 & "Lira " & SonucKurus3 & "Kuruş"
End If
YaziyaCevir = Sonuctotal
End If
End Function
Private Function Sayı(Rakam As String) As String
Dim Number(10) As String, Decade(10) As String
Number(1) = "Bir"
Number(2) = "İki"
Number(3) = "Üç"
Number(4) = "Dört"
Number(5) = "Beş"
Number(6) = "Altı"
Number(7) = "Yedi"
Number(8) = "Sekiz"
Number(9) = "Dokuz"
Decade(1) = "On"
Decade(2) = "Yirmi"
Decade(3) = "Otuz"
Decade(4) = "Kırk"
Decade(5) = "Elli"
Decade(6) = "Atmış"
Decade(7) = "Yetmiş"
Decade(8) = "Seksen"
Decade(9) = "Doksan"
Sayı = ""
If Mid(Rakam, 1, 1) = "0" Then
Sayı = ""
ElseIf Mid(Rakam, 1, 1) = "1" Then
Sayı = "Yüz"
Else
Sayı = Number(CInt(Mid(Rakam, 1, 1))) & "Yüz"
End If
If Mid(Rakam, 2, 1) <> "0" Then Sayı = Sayı & Decade(CInt(Mid(Rakam, 2, 1)))
If Mid(Rakam, 3, 1) <> "0" Then Sayı = Sayı & Number(CInt(Mid(Rakam, 3, 1)))
End Function
Fonksiyonun kullanımı
=YaziyaCevir(Hücre Adresi)
Sonuç aşağıdaki gibi olacaktır.
Örnek Excel dosyasını indirmek için aşağıdaki linke tıklayınız.