Excel de rakamları yazıya çeviren Visual Basic ile hazırlanmış fonksiyon
10.122 defa okundu
Konu: Programlama
İçindekiler
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.