Sayıyı yazıya çevirme

turgayzeynep

Altın Üye
Katılım
22 Şubat 2023
Mesajlar
286
Excel Vers. ve Dili
Ofis 2016 32 Bit Türkçe
Altın Üyelik Bitiş Tarihi
30-12-2029
Hocam iyi akşamlar kolay gelsin B19 hücresinde 6923 yazmakta
C19 hücresine yazı olarak nasıl geçirebilirim yardımcı olabilir misiniz Ne gibi bir formül yazmam lazım
 

volki_112

Altın Üye
Katılım
29 Eylül 2023
Mesajlar
374
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
13-12-2029
Hocam iyi akşamlar kolay gelsin B19 hücresinde 6923 yazmakta
C19 hücresine yazı olarak nasıl geçirebilirim yardımcı olabilir misiniz Ne gibi bir formül yazmam lazım
Formulle cok zor. Hazir makro kodlari var bunun icin. Alttaki videonun aciklamalar kisminda indirme linki var.
 

turgayzeynep

Altın Üye
Katılım
22 Şubat 2023
Mesajlar
286
Excel Vers. ve Dili
Ofis 2016 32 Bit Türkçe
Altın Üyelik Bitiş Tarihi
30-12-2029
Function Sayıyı_Yazıya_Çevir(Tutar As Currency) As String
Dim Tutar_Standart As String
Dim Nokta_Sayısı As Byte
Dim Noktanın_Yeri() As Byte
Dim i As Byte
Dim j As Byte
Dim Virgülden_Önce
Dim Virgülden_Sonra
Dim Noktadan_Önce
Dim Büyük_Değer(1 To 6) As String
Tutar_Standart = Format(Tutar, "#,0")
Büyük_Değer(1) = ""
Büyük_Değer(2) = " bin "
Büyük_Değer(3) = " milyon "
Büyük_Değer(4) = " milyar "
Büyük_Değer(5) = " trilyon "
Büyük_Değer(6) = " katrilyon "

'Virgülden_Sonra = Right(Tutar_Standart, 3)
'If Virgülden_Sonra = ",00" Then Virgülden_Sonra = "0"
Virgülden_Önce = Tutar_Standart ' Left(Tutar_Standart, Len(Tutar_Standart) - 3)
Noktadan_Önce = Len(Virgülden_Önce) Mod 4
Select Case Len(Virgülden_Önce)
Case 1 To 3
Sayıyı_Yazıya_Çevir = Üç_Basamaklı_Yazı(Virgülden_Önce)
Case 5 To 7
Sayıyı_Yazıya_Çevir = Üç_Basamaklı_Yazı(Left(Virgülden_Önce, Len(Virgülden_Önce) - 4)) & Büyük_Değer(2) & Üç_Basamaklı_Yazı(Right(Virgülden_Önce, 3))
Case 9 To 11
Sayıyı_Yazıya_Çevir = Üç_Basamaklı_Yazı(Left(Virgülden_Önce, Noktadan_Önce)) & Büyük_Değer(3) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 2, 3)) & Büyük_Değer(2) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 6, 3))
Case 13 To 15
Sayıyı_Yazıya_Çevir = Üç_Basamaklı_Yazı(Left(Virgülden_Önce, Noktadan_Önce)) & Büyük_Değer(4) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 2, 3)) & Büyük_Değer(3) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 6, 3)) & Büyük_Değer(2) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 10, 3))
Case 17 To 19
Sayıyı_Yazıya_Çevir = Üç_Basamaklı_Yazı(Left(Virgülden_Önce, Noktadan_Önce)) & Büyük_Değer(5) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 2, 3)) & Büyük_Değer(4) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 6, 3)) & Büyük_Değer(3) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 10, 3)) & Büyük_Değer(2) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 14, 3))
Case 21 To 23
Sayıyı_Yazıya_Çevir = Üç_Basamaklı_Yazı(Left(Virgülden_Önce, Noktadan_Önce)) & Büyük_Değer(6) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 2, 3)) & Büyük_Değer(5) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 6, 3)) & Büyük_Değer(4) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 10, 3)) & Büyük_Değer(3) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 14, 3)) & Büyük_Değer(6) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 2, 3)) & Büyük_Değer(5) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 6, 3)) & Büyük_Değer(4) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 10, 3)) & Büyük_Değer(2) & Üç_Basamaklı_Yazı(Mid(Virgülden_Önce, Noktadan_Önce + 18, 3))
End Select
Sayıyı_Yazıya_Çevir = Sayıyı_Yazıya_Çevir ' & " lira " & Üç_Basamaklı_Yazı(Right(Virgülden_Sonra, 2)) & " Kuruş"
Sayıyı_Yazıya_Çevir = Application.WorksheetFunction.Proper(Sayıyı_Yazıya_Çevir)
Sayıyı_Yazıya_Çevir = Application.WorksheetFunction.Trim(Sayıyı_Yazıya_Çevir)
If Left(Sayıyı_Yazıya_Çevir, 7) = "Bir Bin" Then
Sayıyı_Yazıya_Çevir = Application.WorksheetFunction.Substitute(Sayıyı_Yazıya_Çevir, "Bir Bin", "Bin")

End If
Sayıyı_Yazıya_Çevir = Application.WorksheetFunction.Substitute(Sayıyı_Yazıya_Çevir, "Sıfır Lira", "Lira")
Sayıyı_Yazıya_Çevir = Application.WorksheetFunction.Substitute(Sayıyı_Yazıya_Çevir, "Milyon Sıfır Bin", "Milyon")
Sayıyı_Yazıya_Çevir = Application.WorksheetFunction.Substitute(Sayıyı_Yazıya_Çevir, "Lira", "Nokta")
Sayıyı_Yazıya_Çevir = Application.WorksheetFunction.Substitute(Sayıyı_Yazıya_Çevir, "Kuruş", "")
'If Right(Tutar_Standart, 2) = "00" Then
'Sayıyı_Yazıya_Çevir = Application.WorksheetFunction.Substitute(Sayıyı_Yazıya_Çevir, " Nokta Sıfır ", "")
'Sayıyı_Yazıya_Çevir = Left(Sayıyı_Yazıya_Çevir, Len(Sayıyı_Yazıya_Çevir) - 1)

'End If
'Sayıyı_Yazıya_Çevir = Sondan_İkinci_Boşluk_Bul(Sayıyı_Yazıya_Çevir)
'If IsNumeric(Application.WorksheetFunction.Find(" ", Sayıyı_Yazıya_Çevir, Application.WorksheetFunction.Find(" ", Sayıyı_Yazıya_Çevir, Application.WorksheetFunction.Find(" ", Sayıyı_Yazıya_Çevir, Application.WorksheetFunction.Find("Nokta", Sayıyı_Yazıya_Çevir) + 1) + 1) + 1)) = False Then

'Sayıyı_Yazıya_Çevir = Application.WorksheetFunction.Substitute(Sayıyı_Yazıya_Çevir, " Nokta", "Nokta Sıfır")

'End If
End Function
Function Üç_Basamaklı_Yazı(Sayı)
Dim Uzunluk As Byte
Sayı = Int(Sayı)
Sayı = CStr(Sayı)
Uzunluk = Len(Sayı)
If Sayı = 0 Then
Üç_Basamaklı_Yazı = "sıfır"
Exit Function
End If
Select Case Uzunluk
Case 1
Üç_Basamaklı_Yazı = Choose(Sayı, "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz")
Case 2
a = Choose(Mid(Sayı, 1, 1), "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan")
If Mid(Sayı, 2, 1) = 0 Then
b = ""
Else
b = Choose(Mid(Sayı, 2, 1), "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz")
End If
Üç_Basamaklı_Yazı = a & " " & b
Case 3
a = Choose(Mid(Sayı, 1, 1), "", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz") & " yüz"
If Mid(Sayı, 2, 1) = 0 Then
b = ""
Else
b = Choose(Mid(Sayı, 2, 1), "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan")
End If
If Mid(Sayı, 3, 1) = 0 Then
c = ""
Else
c = Choose(Mid(Sayı, 3, 1), "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz")
End If
Üç_Basamaklı_Yazı = a & " " & b & " " & c
End Select
End Function
Function Sondan_İkinci_Boşluk_Bul(İfade)
Dim Nokta_Yeri As Integer
Dim Adet As Byte
Nokta_Yeri = Application.WorksheetFunction.Find("Nokta", İfade)
For i = Len(İfade) To Nokta_Yeri Step -1
If Mid(İfade, i, 1) = " " Then
Adet = Adet + 1
End If
Next i
If Adet
Hocam kodlamada bir hata var çözemedim
 

osman06turgut

Herkes İşi Bitince Teşekkür Etmeden Gidecek!!
Altın Üye
Katılım
25 Nisan 2022
Mesajlar
38
Excel Vers. ve Dili
Office 2021-Türkçe
Altın Üyelik Bitiş Tarihi
30-03-2028
Kod:
Function SayiyiYaziyaCevir(Tutar As Currency) As String
    Dim BuyukDeger As Variant
    Dim Bolumler As Variant
    Dim i As Integer
    Dim BolumSayisi As Integer
   
    BuyukDeger = Array("", " bin ", " milyon ", " milyar ", " trilyon ", " katrilyon ")
    Tutar = Int(Tutar)
   
    If Tutar = 0 Then
        SayiyiYaziyaCevir = "sıfır"
        Exit Function
    End If
   
    Bolumler = Split(Format(Tutar, "#"), "")
    BolumSayisi = UBound(Bolumler) + 1
   
    For i = 0 To BolumSayisi - 1
        If Val(Bolumler(i)) <> 0 Then
            SayiyiYaziyaCevir = SayiyiYaziyaCevir & UcBasamakYazi(Val(Bolumler(i))) & BuyukDeger(BolumSayisi - i - 1)
        End If
    Next i
   
    SayiyiYaziyaCevir = Application.WorksheetFunction.Proper(Trim(SayiyiYaziyaCevir))
    If Left(SayiyiYaziyaCevir, 7) = "Bir Bin" Then
        SayiyiYaziyaCevir = Replace(SayiyiYaziyaCevir, "Bir Bin", "Bin")
    End If
End Function

Function UcBasamakYazi(Sayi As Integer) As String
    Dim Birler As Variant, Onlar As Variant
    Dim Yuzler As String, OnlarBirler As String
   
    Birler = Array("", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz")
    Onlar = Array("", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan")
   
    Yuzler = IIf(Sayi \ 100 = 1, "yüz", IIf(Sayi \ 100 > 1, Birler(Sayi \ 100) & " yüz", ""))
    OnlarBirler = Onlar((Sayi Mod 100) \ 10) & " " & Birler(Sayi Mod 10)
   
    UcBasamakYazi = Trim(Yuzler & " " & OnlarBirler)
End Function
Deneyebilir misiniz?
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,850
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Kod:
Function SayiyiYaziyaCevir(Tutar As Currency) As String
    Dim BuyukDeger As Variant
    Dim Bolumler As Variant
    Dim i As Integer
    Dim BolumSayisi As Integer
  
    BuyukDeger = Array("", " bin ", " milyon ", " milyar ", " trilyon ", " katrilyon ")
    Tutar = Int(Tutar)
  
    If Tutar = 0 Then
        SayiyiYaziyaCevir = "sıfır"
        Exit Function
    End If
  
    Bolumler = Split(Format(Tutar, "#"), "")
    BolumSayisi = UBound(Bolumler) + 1
  
    For i = 0 To BolumSayisi - 1
        If Val(Bolumler(i)) <> 0 Then
            SayiyiYaziyaCevir = SayiyiYaziyaCevir & UcBasamakYazi(Val(Bolumler(i))) & BuyukDeger(BolumSayisi - i - 1)
        End If
    Next i
  
    SayiyiYaziyaCevir = Application.WorksheetFunction.Proper(Trim(SayiyiYaziyaCevir))
    If Left(SayiyiYaziyaCevir, 7) = "Bir Bin" Then
        SayiyiYaziyaCevir = Replace(SayiyiYaziyaCevir, "Bir Bin", "Bin")
    End If
End Function

Function UcBasamakYazi(Sayi As Integer) As String
    Dim Birler As Variant, Onlar As Variant
    Dim Yuzler As String, OnlarBirler As String
  
    Birler = Array("", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz")
    Onlar = Array("", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan")
  
    Yuzler = IIf(Sayi \ 100 = 1, "yüz", IIf(Sayi \ 100 > 1, Birler(Sayi \ 100) & " yüz", ""))
    OnlarBirler = Onlar((Sayi Mod 100) \ 10) & " " & Birler(Sayi Mod 10)
  
    UcBasamakYazi = Trim(Yuzler & " " & OnlarBirler)
End Function
Deneyebilir misiniz?
Ben şu sayıları yazdım değer hatası veriyor. 1001 , 10056 , 1005145 vb.
 
Katılım
11 Temmuz 2024
Mesajlar
234
Excel Vers. ve Dili
Excel 2021 Türkçe
Merhaba, alternatif olması adına;

Kod:
Function SayiyiYaziyaCevir(Sayi As Double) As String
    Dim Birler() As String
    Dim Onlar() As String
    Dim Yuzler() As String
    Dim Result As String
    Dim basamak As Integer
    Dim On, Yuz As Integer

    Birler = Split("Bir,İki,Üç,Dört,Beş,Altı,Yedi,Sekiz,Dokuz", ",")
    Onlar = Split("On,Yirmi,Otuz,Kırk,Elli,Altmış,Yetmiş,Seksen,Doksan", ",")
    Yuzler = Split("Yüz,İki Yüz,Üç Yüz,Dört Yüz,Beş Yüz,Altı Yüz,Yedi Yüz,Sekiz Yüz,Dokuz Yüz", ",")
    
    If Sayi = 0 Then
        SayiyiYaziyaCevir = "Sıfır"
        Exit Function
    End If
    
    basamak = 0
    Result = ""
    
    Yuz = Int(Sayi / 100)
    If Yuz > 0 Then
        Result = Result & Yuzler(Yuz - 1) & " "
        Sayi = Sayi - (Yuz * 100)
    End If
    
    On = Int(Sayi / 10)
    If On > 0 Then
        Result = Result & Onlar(On - 1) & " "
        Sayi = Sayi - (On * 10)
    End If
    
    If Sayi > 0 Then
        Result = Result & Birler(Sayi - 1)
    End If
    
    SayiyiYaziyaCevir = Application.Trim(Result)
End Function
C19 hücresine;
Kod:
=SayiyiYaziyaCevir(B19)
 

turgayzeynep

Altın Üye
Katılım
22 Şubat 2023
Mesajlar
286
Excel Vers. ve Dili
Ofis 2016 32 Bit Türkçe
Altın Üyelik Bitiş Tarihi
30-12-2029
Merhaba, alternatif olması adına;

Kod:
Function SayiyiYaziyaCevir(Sayi As Double) As String
    Dim Birler() As String
    Dim Onlar() As String
    Dim Yuzler() As String
    Dim Result As String
    Dim basamak As Integer
    Dim On, Yuz As Integer

    Birler = Split("Bir,İki,Üç,Dört,Beş,Altı,Yedi,Sekiz,Dokuz", ",")
    Onlar = Split("On,Yirmi,Otuz,Kırk,Elli,Altmış,Yetmiş,Seksen,Doksan", ",")
    Yuzler = Split("Yüz,İki Yüz,Üç Yüz,Dört Yüz,Beş Yüz,Altı Yüz,Yedi Yüz,Sekiz Yüz,Dokuz Yüz", ",")
    
    If Sayi = 0 Then
        SayiyiYaziyaCevir = "Sıfır"
        Exit Function
    End If
    
    basamak = 0
    Result = ""
    
    Yuz = Int(Sayi / 100)
    If Yuz > 0 Then
        Result = Result & Yuzler(Yuz - 1) & " "
        Sayi = Sayi - (Yuz * 100)
    End If
    
    On = Int(Sayi / 10)
    If On > 0 Then
        Result = Result & Onlar(On - 1) & " "
        Sayi = Sayi - (On * 10)
    End If
    
    If Sayi > 0 Then
        Result = Result & Birler(Sayi - 1)
    End If
    
    SayiyiYaziyaCevir = Application.Trim(Result)
End Function
C19 hücresine;
Kod:
=SayiyiYaziyaCevir(B19)
Teşekkür ederim oldu
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,321
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
İşinize Yararmı bilmiyorum ancak zamanında uğraşı olması için aşağıdaki formülü yazmıştım ): A1 Sayı girildiği düşünülmüştür.


=EĞER(A1="";"";"# Yalnız # "&YAZIM.DÜZENİ(EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^6;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;7);1)+1;"";"birmilyon";"ikimilyon";"üçmilyon";"dörtmilyon";"beşmilyon";"altımilyon";"yedimilyon";"sekizmilyon";"dokuzmilyon");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^5;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;6);1)+1;"";"yüz";"ikiyüz";"üçyüz";"dörtyüz";"beşyüz";"altıyüz";"yediyüz";"sekizyüz";"dokuzyüz");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^4;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;5);1)+1;"";"on";"yirmi";"otuz";"kırk";"elli";"altmış";"yetmiş";"seksen";"doksan");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^3;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;4);1)+1;"";"";"iki";"üç";"dört";"beş";"altı";"yedi";"sekiz";"dokuz");"")&EĞER(VE(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^3;SAYIYAÇEVİR(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;6);3))>0);EĞER(VE(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>1999;SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;4);1)="1");"birbin";"bin");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=100;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;3);1)+1;"";"yüz";"ikiyüz";"üçyüz";"dörtyüz";"beşyüz";"altıyüz";"yediyüz";"sekizyüz";"dokuzyüz");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;2);1)+1;"";"on";"yirmi";"otuz";"kırk";"elli";"altmış";"yetmiş";"seksen";"doksan");"")&ELEMAN(MOD(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;10)+1;"";"bir";"iki";"üç";"dört";"beş";"altı";"yedi";"sekiz";"dokuz")))
 
Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,850
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Merhaba, alternatif olması adına;

Kod:
Function SayiyiYaziyaCevir(Sayi As Double) As String
    Dim Birler() As String
    Dim Onlar() As String
    Dim Yuzler() As String
    Dim Result As String
    Dim basamak As Integer
    Dim On, Yuz As Integer

    Birler = Split("Bir,İki,Üç,Dört,Beş,Altı,Yedi,Sekiz,Dokuz", ",")
    Onlar = Split("On,Yirmi,Otuz,Kırk,Elli,Altmış,Yetmiş,Seksen,Doksan", ",")
    Yuzler = Split("Yüz,İki Yüz,Üç Yüz,Dört Yüz,Beş Yüz,Altı Yüz,Yedi Yüz,Sekiz Yüz,Dokuz Yüz", ",")
   
    If Sayi = 0 Then
        SayiyiYaziyaCevir = "Sıfır"
        Exit Function
    End If
   
    basamak = 0
    Result = ""
   
    Yuz = Int(Sayi / 100)
    If Yuz > 0 Then
        Result = Result & Yuzler(Yuz - 1) & " "
        Sayi = Sayi - (Yuz * 100)
    End If
   
    On = Int(Sayi / 10)
    If On > 0 Then
        Result = Result & Onlar(On - 1) & " "
        Sayi = Sayi - (On * 10)
    End If
   
    If Sayi > 0 Then
        Result = Result & Birler(Sayi - 1)
    End If
   
    SayiyiYaziyaCevir = Application.Trim(Result)
End Function
C19 hücresine;
Kod:
=SayiyiYaziyaCevir(B19)
Bu kod ondalık sayıları çevirmiyor örnek 101,52
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,850
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Aslında Korhan Bey yukarıda bir link vermiş orada bunlar mevcut
Bir kod da ben ekliyorum.

CSS:
Function Yaziyla(sayi#)
Dim virgul2 As String, cevap As String, yazi As String, say As String, uclu As String
Dim virgul1 As Integer, o As Integer, b As Integer, X As Integer, i As Integer, y As Integer
Dim TL As String, KR As String

If sayi# = 0 Then Yaziyla = "": Exit Function

virgul2 = "": cevap = "": TL = ".TL.": KR = ".Krş."

ReDim Birler$(10), Onlar$(10), basamak$(6)

Birler$(0) = "":        Onlar$(0) = "":        basamak$(1) = "":
Birler$(1) = "bir":     Onlar$(1) = "on":      basamak$(2) = "bin"
Birler$(2) = "iki":     Onlar$(2) = "yirmi":   basamak$(3) = "milyon":
Birler$(3) = "üç":      Onlar$(3) = "otuz":    basamak$(4) = "milyar"
Birler$(4) = "dört":    Onlar$(4) = "kırk":    basamak$(5) = "trilyon"
Birler$(5) = "beş":     Onlar$(5) = "elli":    basamak$(6) = "katrilyon"
Birler$(6) = "altı":    Onlar$(6) = "altmış":
Birler$(7) = "yedi":    Onlar$(7) = "yetmiş"
Birler$(8) = "sekiz":   Onlar$(8) = "seksen":
Birler$(9) = "dokuz":   Onlar$(9) = "doksan"


say = Str$(sayi#)
virgul1 = InStr(1, say, ".")
If virgul1 Then
If Len(Mid(say, virgul1 + 1)) = 1 Then say = say + "0"
say = Right$(say, Len(say) - virgul1)
GoSub cevir

If cevap = "" Then KR = ""
virgul2 = cevap + KR
cevap = ""
say = Left$(Str$(sayi#), virgul1 - 1)
End If
GoSub cevir
If cevap = "" Then TL = ""
Yaziyla = WorksheetFunction.Proper(cevap) + TL + WorksheetFunction.Proper(virgul2)
Exit Function
cevir:
X = Len(say)
say = String$(3 - (X - Int(X / 3) * 3), 48) + say
X = Len(say) / 3
For i = 1 To X
uclu = Mid$(say, Len(say) - i * 3 + 1, 3)
y = Val(Mid$(uclu, 1, 1))
o = Val(Mid$(uclu, 2, 1))
b = Val(Mid$(uclu, 3, 1))
yazi = ""
If y <> 0 Then
If y > 1 Then yazi = Birler$(y)
yazi = yazi + "yüz"
End If

yazi = yazi + Onlar$(o) + Birler$(b)
If yazi <> "" Then
If yazi = "bir" And i = 2 Then yazi = ""
cevap = yazi + basamak$(i) + cevap
End If
Next i
If sayi# < 0 Then
cevap = "-Eksi-" + WorksheetFunction.Proper(cevap)

End If
Return
End Function
 

sertkan42

Altın Üye
Katılım
27 Kasım 2019
Mesajlar
70
Excel Vers. ve Dili
Microsoft Office 2016
Altın Üyelik Bitiş Tarihi
16-02-2030
Herkesin eline sağlık. 2016 Versiyonda çalışmadı kodlar ama daha yeni sürümler için midir?
 

turgayzeynep

Altın Üye
Katılım
22 Şubat 2023
Mesajlar
286
Excel Vers. ve Dili
Ofis 2016 32 Bit Türkçe
Altın Üyelik Bitiş Tarihi
30-12-2029
İşinize Yararmı bilmiyorum ancak zamanında uğraşı olması için aşağıdaki formülü yazmıştım ): A1 Sayı girildiği düşünülmüştür.


=EĞER(A1="";"";"# Yalnız # "&YAZIM.DÜZENİ(EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^6;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;7);1)+1;"";"birmilyon";"ikimilyon";"üçmilyon";"dörtmilyon";"beşmilyon";"altımilyon";"yedimilyon";"sekizmilyon";"dokuzmilyon");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^5;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;6);1)+1;"";"yüz";"ikiyüz";"üçyüz";"dörtyüz";"beşyüz";"altıyüz";"yediyüz";"sekizyüz";"dokuzyüz");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^4;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;5);1)+1;"";"on";"yirmi";"otuz";"kırk";"elli";"altmış";"yetmiş";"seksen";"doksan");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^3;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;4);1)+1;"";"";"iki";"üç";"dört";"beş";"altı";"yedi";"sekiz";"dokuz");"")&EĞER(VE(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^3;SAYIYAÇEVİR(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;6);3))>0);EĞER(VE(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>1999;SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;4);1)="1");"birbin";"bin");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=100;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;3);1)+1;"";"yüz";"ikiyüz";"üçyüz";"dörtyüz";"beşyüz";"altıyüz";"yediyüz";"sekizyüz";"dokuzyüz");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;2);1)+1;"";"on";"yirmi";"otuz";"kırk";"elli";"altmış";"yetmiş";"seksen";"doksan");"")&ELEMAN(MOD(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;10)+1;"";"bir";"iki";"üç";"dört";"beş";"altı";"yedi";"sekiz";"dokuz")))
Hocam eline emeğine sağlık Çok teşekkür ederim tek sıkıntı Altıbin dokuzyüzyirmiüç
Şeklinde yazılı
Altıbin dokuzyüz yirmi üç olarak aralarını açabilirmiyiz rıca etsem
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,828
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Halit3 Hocam,
Araya girmiş olmak istemem, ama virgülden sonraki iki basamak kuruş olarak adlandırılır. Örneğinizde 5. satır hatalı
Saygılarımla
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,850
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Sayın Halit3 Hocam,
Araya girmiş olmak istemem, ama virgülden sonraki iki basamak kuruş olarak adlandırılır. Örneğinizde 5. satır hatalı
Saygılarımla
Sayılar hücreye sığmamış hücreyi (sütun) birazcık açarsanız orada görünmeyen ondalık sayılar var.
 

shanex

Altın Üye
Katılım
15 Eylül 2019
Mesajlar
15
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
21-11-2025
İşinize Yararmı bilmiyorum ancak zamanında uğraşı olması için aşağıdaki formülü yazmıştım ): A1 Sayı girildiği düşünülmüştür.


=EĞER(A1="";"";"# Yalnız # "&YAZIM.DÜZENİ(EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^6;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;7);1)+1;"";"birmilyon";"ikimilyon";"üçmilyon";"dörtmilyon";"beşmilyon";"altımilyon";"yedimilyon";"sekizmilyon";"dokuzmilyon");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^5;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;6);1)+1;"";"yüz";"ikiyüz";"üçyüz";"dörtyüz";"beşyüz";"altıyüz";"yediyüz";"sekizyüz";"dokuzyüz");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^4;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;5);1)+1;"";"on";"yirmi";"otuz";"kırk";"elli";"altmış";"yetmiş";"seksen";"doksan");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^3;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;4);1)+1;"";"";"iki";"üç";"dört";"beş";"altı";"yedi";"sekiz";"dokuz");"")&EĞER(VE(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10^3;SAYIYAÇEVİR(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;6);3))>0);EĞER(VE(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>1999;SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;4);1)="1");"birbin";"bin");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=100;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;3);1)+1;"";"yüz";"ikiyüz";"üçyüz";"dörtyüz";"beşyüz";"altıyüz";"yediyüz";"sekizyüz";"dokuzyüz");"")&EĞER(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1>=10;ELEMAN(SOLDAN(SAĞDAN(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;2);1)+1;"";"on";"yirmi";"otuz";"kırk";"elli";"altmış";"yetmiş";"seksen";"doksan");"")&ELEMAN(MOD(EĞER(UZUNLUK(YERİNEKOY(YUVARLA(A1;2);",";""))=UZUNLUK(YUVARLA(A1;2));YUVARLA(A1;2);KIRP(SOLDAN(YUVARLA(A1;2);BUL(",";YUVARLA(A1;2))-1)))*1;10)+1;"";"bir";"iki";"üç";"dört";"beş";"altı";"yedi";"sekiz";"dokuz")))

Hocam iyi çalışmalar.
TL ve Kr ayrımı da yapabilir miyiz
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,321
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Müsait olduğumda bir bakayım ancak Sayın Halit Hocamın 15 Numaralı mesajdaki çalışması da çok stabil çalışıyor. Bilginiz Olsun
 

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
950
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Daha önce ya bu siteden, ya da farklı bir siteden aşağıdaki kodu bulmuştum. TL ve KR olarak ayrım yapmakta. Mutabakat mektubu oluşturmak için kullanmaktaydım. Hiç sıkıntı yaşamadım.



256518



Kod:
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) = "BİR"
    sayi(2, 1) = "İKİYÜZ": sayi(2, 2) = "YİRMİ": sayi(2, 3) = "İKİ"
    sayi(3, 1) = "ÜÇYÜZ": sayi(3, 2) = "OTUZ": sayi(3, 3) = "ÜÇ"
    sayi(4, 1) = "DÖRTYÜZ": sayi(4, 2) = "KIRK": sayi(4, 3) = "DÖRT"
    sayi(5, 1) = "BEŞYÜZ": sayi(5, 2) = "ELLİ": sayi(5, 3) = "BEŞ"
    sayi(6, 1) = "ALTIYÜZ": sayi(6, 2) = "ALTMIŞ": sayi(6, 3) = "ALTI"
    sayi(7, 1) = "YEDİYÜZ": sayi(7, 2) = "YETMİŞ": sayi(7, 3) = "YEDİ"
    sayi(8, 1) = "SEKİZYÜZ": sayi(8, 2) = "SEKSEN": sayi(8, 3) = "SEKİZ"
    sayi(9, 1) = "DOKUZYÜZ": sayi(9, 2) = "DOKSAN": sayi(9, 3) = "DOKUZ"
    basamak(5) = "TRİLYON"
    basamak(4) = "MİLYAR"
    basamak(3) = "MİLYON"
    basamak(2) = "BİN"
    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 + "BİN"
    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 + " TL."
    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) + " KR."
    End If
End Function
 
Üst