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

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ı fonksiylar 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.

Yazıya Çevir 

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

http://www.metinselvi.com/files/YazıyaÇevir.xlsm 


İlgili Yazılar