Excel’de Sayıyı Metne Çevirme

Aralık 27, 2016
568 Views

Excel’de kullanıcıların en çok istedikleri olaylardan bir tanesi de bir hücrenin içindeki sayısal verinin başka bir hücreye metinsel olarak yazdırılmasıdır.

Bu olay en çok Excel üzerinde fatura şablonu oluşturulup basılması esnasında karşımıza çıkar.

Öncelikle şunu belirtmek istiyorum, bunu direk olarak yapan Excel’in bir özelliği yoktur. Bunu yapabilmek için Excel’in VBA tarafını kullanacağız. Yani Visual Basic Applications kullanarak Excel üzerinde bunu gerçekleştirecek fonksiyonu oluşturup, sayfamızda bu fonksiyonu kullanarak sonuca ulaşacağız.

1.adım: Öncelikle ALT+F11 tuş bileşenini kullanarak Excel VBA ara yüzünü açacağız.

2.adım: Menü çubuğundaki Insert seçeneğine tıklamak suretiyle açılan menüden Module seçeneğini seçiyoruz. Bunu yapmamızdaki amaç kullanacağımız VBA kodumuzun dosyamızdaki her sayfada kullanılabilir olmasını sağlatmaktır.

3.adım: Module seçeneğini ile boş bir module sayfası açmış olduk.

4.adım: Aşağıda yazmış olduğum VBA kodunu bu pencerenin içine kopyala-yapıştır metodu ile yapıştırınız.

Function ParaCevir(Para, Optional PBirim = “Lira”, Optional KBirim = “Kuruş”)

Dim ParaStr As String

Dim Lira As String, Kurus As String

If Not IsNumeric(Para) Then

ParaCevir = “GİRİLEN DEĞER SAYI DEĞİL!”

Exit Function

End If

ParaStr = Format(Abs(Para), “0.00”)

Lira = Left(ParaStr, Len(ParaStr) – 3)

Kurus = Right(ParaStr, 2)

ParaCevir = IIf(Para < 0, “Eksi “, “”) & Cevir(Lira) & ” ” & PBirim & ” ” & _

IIf(Val(Kurus) <> 0, Cevir(Kurus) & ” ” & KBirim & ” “, “”)

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 = “Sıfır”

Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) – 1)

End Function

Yapıştırma işlemi bittikten sonra aşağıdaki görüntüyü elde etmiş olmalısınız.

5.adım: Sıra geldi Excel üzerinde kod le oluşturulan fonksiyonu kullanmaya. Sayımızı metine çevirmek istediğimiz hücrenin içine “=paracevir(hücre adresi)” şeklinde fonksiyonumuzu yazıyoruz. Hücre adresi olarak metine çevirmek istediğimiz hücrenin adresini yazıyoruz.

Böylece istediğimiz sayıyı metine çevirmiş oluyoruz. Eğer elimizdeki sayı hem tamsayı hem de ondalık sayı içeriyorsa Lira ve Kuruş olarakta ayrımı yaparak yazımı sağlatmış oluyoruz.

Bir başka makalemizde oluşturduğumuz fonksiyonun diğer tüm Excel kitaplarında çalışmasını nasıl sağlatırız ondan bahsedeceğiz.

You may be interested

Fortigate 5.4.0 BlackHole Routing nedir?
Ağ Teknolojileri
0 shares448 views
Ağ Teknolojileri
0 shares448 views

Fortigate 5.4.0 BlackHole Routing nedir?

Caner AKTAŞ - May 29, 2017

Herkese Merhaba,  Bugün kü konumuz Black Hole ( Kara Delik) routing nedir, nerelerde kullanırız ve nasıl kullanırız gibi başlıklar altında…

İŞ İLANI – Bilgi Güvenliği – Destek Uzmanı (ESET Türkiye)
Güvenlik Teknolojileri
0 shares262 views
Güvenlik Teknolojileri
0 shares262 views

İŞ İLANI – Bilgi Güvenliği – Destek Uzmanı (ESET Türkiye)

Mücahid AKÇAY - May 24, 2017

ESET Türkiye İstanbul ofisinde, teknik destek ekibinde çalışacak aşağıdaki özelliklere sahip ekip arkadaşları arayışımız bulunmaktadır. İlgilenenlerin ik@stratus.com.tr adresine Bilgi Güvenliği -…

Fortigate 5.4.0 ile WannaCry nasıl önlenir?
Güvenlik Teknolojileri
0 shares659 views
Güvenlik Teknolojileri
0 shares659 views

Fortigate 5.4.0 ile WannaCry nasıl önlenir?

Caner AKTAŞ - May 23, 2017

Herkese Merhaba, Gündemimize bomba gibi oturan televizyonlar da sosyal medyalarda her yerde görmeye başladığımız WannaCry virüsü ile ilgili birkaç not…

Leave a Comment

Your email address will not be published.