tarihi metne çevirme

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,669
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
merhaba,

a1 hücresindeki 11.3.2017 tarihini a5 hücresine "onbir mart İkibinonyedi" olarak görmek için yardımlarınızı rica ediyorum.
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Makrolu çözüm KTF;

Excel dosyanızın Modul bölümüne yapıştırın.

Kullanımı : Tarih A1 hücresinde ise B1 e =yazilitarih(A1) şeklindedir.

Kod:
Dim aylar As Variant

Function yazilitarih(hucre As Range) As String
   aylar = Array("ocak", "şubat", " mart", "nisan", "mayıs", "haziran", "temmuz", " ağustos", "eylül", "ekim", "kasım", "aralık")
   tarih = CDate(hucre.Value)
   gun = Day(tarih)
   ay = Month(tarih)
   yil = Year(tarih)
   yazilitarih = yaziyacevir(gun) & " " & aylar(ay-1) & " " & yaziyacevir(yil)
End Function


Function yaziyacevir(rakam)
Dim grup(5), sayi(10, 3), basamak(5), oku(3)
sayi(0, 1) = "": sayi(0, 2) = "": sayi(0, 3) = ""
sayi(1, 1) = "yüz": sayi(1, 2) = "on": sayi(1, 3) = "bir"
sayi(2, 1) = "ikiyüz": sayi(2, 2) = "yirmi": sayi(2, 3) = "iki"
sayi(3, 1) = "üçyüz": sayi(3, 2) = "otuz": sayi(3, 3) = "üç"
sayi(4, 1) = "dörtyüz": sayi(4, 2) = "kırk": sayi(4, 3) = "dört"
sayi(5, 1) = "beşyüz": sayi(5, 2) = "elli": sayi(5, 3) = "beş"
sayi(6, 1) = "altıyüz": sayi(6, 2) = "altmış": sayi(6, 3) = "altı"
sayi(7, 1) = "yediyüz": sayi(7, 2) = "yetmiş": sayi(7, 3) = "yedi"
sayi(8, 1) = "sekizyüz": sayi(8, 2) = "seksen": sayi(8, 3) = "sekiz"
sayi(9, 1) = "dokuzyüz": sayi(9, 2) = "doksan": sayi(9, 3) = "dokuz"
basamak(5) = "trilyon"
basamak(4) = "milyar"
basamak(3) = "milyon"
basamak(2) = "bin"
basamak(1) = ""
lira = Int(rakam)
kurus = Round(rakam - lira, 2) * 100
If Len(lira) > 15 Then
MsgBox ("bu fonksiyon en fazla 15 haneli sayılar için çalışır.")
End
End If
kalan = lira
yaziyacevir = ""

For x = 1 To 5
a = 15 - 3 * x
  If Len(lira) > a Then
  grup(6 - x) = Int(kalan / 10 ^ a)
  kalan = kalan - (grup(6 - x) * 10 ^ a)
End If

Next x

If grup(5) > 0 Then
  oku(1) = Int(grup(5) / 100)
  baskalan = grup(5) - oku(1) * 100
  oku(2) = Int(baskalan / 10)
  oku(3) = baskalan - oku(2) * 10
  yaziyacevir = sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(5)
End If

If grup(4) > 0 Then
  oku(1) = Int(grup(4) / 100)
  baskalan = grup(4) - oku(1) * 100
  oku(2) = Int(baskalan / 10)
  oku(3) = baskalan - oku(2) * 10
  yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(4)
End If

If grup(3) > 0 Then
  oku(1) = Int(grup(3) / 100)
  baskalan = grup(3) - oku(1) * 100
  oku(2) = Int(baskalan / 10)
  oku(3) = baskalan - oku(2) * 10
  yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(3)
End If

If grup(2) = 1 Then
     yaziyacevir = yaziyacevir + "bin"
End If
  
If grup(2) > 1 Then
  oku(1) = Int(grup(2) / 100)
  baskalan = grup(2) - oku(1) * 100
  oku(2) = Int(baskalan / 10)
  oku(3) = baskalan - oku(2) * 10
  yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(2)
End If

If grup(1) > 0 Then
  oku(1) = Int(grup(1) / 100)
  baskalan = grup(1) - oku(1) * 100
  oku(2) = Int(baskalan / 10)
  oku(3) = baskalan - oku(2) * 10
  yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(1)
End If
  yaziyacevir = yaziyacevir + ""
  If kurus > 0 Then
     oku(2) = 0
     If Len(kurus) > 1 Then
     oku(2) = Int(kurus / 10)
     End If
     oku(3) = kurus - oku(2) * 10
     yaziyacevir = yaziyacevir + sayi(oku(2), 2) + sayi(oku(3), 3) + ""
   End If
End Function
 
Son düzenleme:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.

A1 hücresine yazacağınız tarih 2000-2099 yılları aralığında ise aşağıdaki formülü kullanabilirsiniz.
.
Kod:
=[COLOR="red"]ARA[/COLOR]([COLOR="red"]TAMSAYI[/COLOR]([COLOR="red"]GÜN[/COLOR](A1)/10);{0;1;2;3;4;5;6;7;8;9};{"";"on";"yirmi";"otuz"})&[COLOR="red"]ARA[/COLOR]([COLOR="red"]EĞER[/COLOR]([COLOR="red"]GÜN[/COLOR](A1)<10;[COLOR="red"]GÜN[/COLOR](A1);[COLOR="red"]MOD[/COLOR]([COLOR="red"]GÜN[/COLOR](A1);10));{0;1;2;3;4;5;6;7;8;9};{"";"bir";"iki";"üç";"dört";"beş";"altı";"yedi";"sekiz";"dokuz"})&" "&[COLOR="red"]ARA[/COLOR]([COLOR="red"]AY[/COLOR](A1);{1;2;3;4;5;6;7;8;9;10;11;12};{"ocak";"şubat";"mart";"nisan";"mayıs";"haziran";"temmuz";"ağustos";"eylül";"ekim";"kasım";"aralık"})&" ikibin"&ARA([COLOR="red"]TAMSAYI[/COLOR](([COLOR="red"]YIL[/COLOR](A1)-2000)/10);{0;1;2;3;4;5;6;7;8;9};{"";"on";"yirmi";"otuz";"kırk";"elli";"altmış";"yetmiş";"seksen";"doksan"})&[COLOR="red"]ARA[/COLOR]([COLOR="red"]MOD[/COLOR]([COLOR="Red"]YIL[/COLOR](A1)-2000;10);{0;1;2;3;4;5;6;7;8;9};{"";"bir";"iki";"üç";"dört";"beş";"altı";"yedi";"sekiz";"dokuz"})
 

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,669
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
Çok teşekkür ederim.
Hakkınızı helal ediniz
Selametle
 
Üst