Gönderen Konu: Excel'de Rakamı Yazıya Çevirmek 2 ( .-TL., .-KR. ) (KTF)  (Okunma sayısı 28850 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Hüseyin Çoban

  • Excelce.Net Yönetici
  • *
  • İleti: 182
  • Puan +11/-0
  • Cinsiyet: Bay
  • Ad Soyad: Hüseyin Çoban
  • İl / İlçe: Denizli
  • İşletim Sisteminiz: Windows 7 - 64 bit
  • Mesleğiniz: Ü.Tğm.
  • Office Versiyonunuz: Office 2007 TR
Kodları boş bir modüle yapıştırarak uygulayınız.

Kod: [Seç]
Function tlkryaz(Sayi#)
'formül:  =tlkryaz(hücre adresi)
    Dim virgul2 As String
    Dim cevap As String
    Dim yazi As String
    Dim Say As String
    Dim uclu As String
    Dim virgul As Integer
    Dim o As Integer
    Dim b As Integer
    Dim x As Integer
    Dim i As Integer
    Dim y As Integer
    Dim TL As String
    Dim KR As String
   
    If Sayi# = 0 Then tlkryaz = "Sıfır": Exit Function
   
    ReDim birler$(10), onlar$(10), basamak$(5)
   
    birler$(0) = "":        birler$(1) = "Bir"
    birler$(2) = "İki":     birler$(3) = "Üç"
    birler$(4) = "Dört":    birler$(5) = "Beş"
    birler$(6) = "Altı":    birler$(7) = "Yedi"
    birler$(8) = "Sekiz":   birler$(9) = "Dokuz"
   
    onlar$(0) = "":         onlar$(1) = "On"
    onlar$(2) = "Yirmi":    onlar$(3) = "Otuz"
    onlar$(4) = "Kırk":     onlar$(5) = "Elli"
    onlar$(6) = "Altmış":   onlar$(7) = "Yetmiş"
    onlar$(8) = "Seksen":   onlar$(9) = "Doksan"
   
    basamak$(1) = "":       basamak$(2) = "Bin "
    basamak$(3) = "Milyon ": basamak$(4) = "Milyar "
    basamak$(5) = "Trilyon "
   
    virgul2 = ""
    cevap = ""
   
    'AŞAĞIDAKİ 2 SATIRDAKİ ÇİFT TIRNAK İÇERİĞİNİ DEĞİŞTİREREK
    'VEYA ÇİFT TIRNAĞIN ARASINI SİLEREK    "" VEYA "," GİBİ
    'İSTEĞİNİZ SONUCUN ÇIKMASINI SAĞLAYABİLİRSİNİZ.
    TL = ".-TL., "
    KR = ".-KR."

    Say = Str$(Sayi#)
    virgul = InStr(1, Say, ".")
    If virgul Then
       
        'Aşağadaki satır 26,4  Yirmialtı TL, KIRK KR olarak okutur.
        '              (Yirmialtı TL, DÖRT KR olarak değil)
        'İptal etmek isterseniz başına bir  ' tek tırnak işareti koyunuz
        If Len(Mid(Say, virgul + 1)) = 1 Then Say = Say + "0"
       
        Say = Right$(Say, Len(Say) - virgul)
        GoSub cevir
       
        If cevap = "" Then KR = ""
        virgul2 = cevap + KR
        cevap = ""
       
        Say = Str$(Sayi#)
        Say = Left$(Say, virgul - 1)
    End If
    GoSub cevir
    If cevap = "" Then TL = ""
    tlkryaz = cevap + TL + 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 LCase(yazi) = "bir" And i = 2 Then yazi = ""
                cevap = yazi + basamak$(i) + cevap
            End If
     Next i
     If Sayi# < 0 Then cevap = "-Eksi-" + cevap
     Return
End Function


Formül:

Kod: [Seç]
=tlkryaz(hücre adresi)



Alıntı...

Çevrimdışı assenucler

  • Excelce Çavuş
  • ***
  • İleti: 123
  • Puan +1/-1
  • Cinsiyet: Bay
  • Excel'den Daha Fazlası!..
  • Ad Soyad: Selim Şenüçler
  • İl / İlçe: İstanbul / Kadıköy
Ynt: Excel'de Rakamı Yazıya Çevirmek 2 ( .-TL., .-KR. ) (KTF)
« Yanıtla #1 : 29 Eylül 2012, 22:02:07 »
Sayın Hüseyin Çoban,


İyi akşamlar.
Emek ve paylaşımınız için teşekkürler.

Yazının başına "Yalnız" sözcüğü konulabilir mi? Örneğin, "Yalnızİkiyüzlira" gibi...

Sevgi ve saygılar.


Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1319
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • İl / İlçe: İstanbul / Çorlu
  • İşletim Sisteminiz: Win.10
  • Mesleğiniz: Bilgi Teknolojileri
  • Office Versiyonunuz: Office2013/2016
Ynt: Excel'de Rakamı Yazıya Çevirmek 2 ( .-TL., .-KR. ) (KTF)
« Yanıtla #2 : 30 Eylül 2012, 11:58:15 »
Merhaba Selim Bey,

Kodları şu şekilde uyarlayabiliriz:

Kod: [Seç]
Function tlkryaz(Sayi#)
'formül:  =tlkryaz(hücre adresi)
    Dim virgul2 As String
    Dim cevap As String
    Dim yazi As String
    Dim Say As String
    Dim uclu As String
    Dim virgul As Integer
    Dim o As Integer
    Dim b As Integer
    Dim x As Integer
    Dim i As Integer
    Dim y As Integer
    Dim TL As String
    Dim KR As String
   
    If Sayi# = 0 Then tlkryaz = "Sıfır": Exit Function
   
    ReDim birler$(10), onlar$(10), basamak$(5)
   
    birler$(0) = "":        birler$(1) = "Bir"
    birler$(2) = "İki":     birler$(3) = "Üç"
    birler$(4) = "Dört":    birler$(5) = "Beş"
    birler$(6) = "Altı":    birler$(7) = "Yedi"
    birler$(8) = "Sekiz":   birler$(9) = "Dokuz"
   
    onlar$(0) = "":         onlar$(1) = "On"
    onlar$(2) = "Yirmi":    onlar$(3) = "Otuz"
    onlar$(4) = "Kırk":     onlar$(5) = "Elli"
    onlar$(6) = "Altmış":   onlar$(7) = "Yetmiş"
    onlar$(8) = "Seksen":   onlar$(9) = "Doksan"
   
    basamak$(1) = "":       basamak$(2) = "Bin "
    basamak$(3) = "Milyon ": basamak$(4) = "Milyar "
    basamak$(5) = "Trilyon "
   
    virgul2 = ""
    cevap = ""
   
    'AŞAĞIDAKİ 2 SATIRDAKİ ÇİFT TIRNAK İÇERİĞİNİ DEĞİŞTİREREK
    'VEYA ÇİFT TIRNAĞIN ARASINI SİLEREK    "" VEYA "," GİBİ
    'İSTEĞİNİZ SONUCUN ÇIKMASINI SAĞLAYABİLİRSİNİZ.
    TL = ".-TL., "
    KR = ".-KR."

    Say = Str$(Sayi#)
    virgul = InStr(1, Say, ".")
    If virgul Then
       
        'Aşağadaki satır 26,4  Yirmialtı TL, KIRK KR olarak okutur.
        '              (Yirmialtı TL, DÖRT KR olarak değil)
        'İptal etmek isterseniz başına bir  ' tek tırnak işareti koyunuz
        If Len(Mid(Say, virgul + 1)) = 1 Then Say = Say + "0"
       
        Say = Right$(Say, Len(Say) - virgul)
        GoSub cevir
       
        If cevap = "" Then KR = ""
        virgul2 = cevap + KR
        cevap = ""
       
        Say = Str$(Sayi#)
        Say = Left$(Say, virgul - 1)
    End If
    GoSub cevir
    If cevap = "" Then TL = ""
    tlkryaz = cevap + TL + virgul2
    tlkryaz = "Yalnız " & tlkryaz
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 LCase(yazi) = "bir" And i = 2 Then yazi = ""
                cevap = yazi + basamak$(i) + cevap
            End If
     Next i
     If Sayi# < 0 Then cevap = "-Eksi-" + cevap
     Return
     
End Function

=EĞER(EYOKSA("Google Arama");"Belki_Cevap_Burada";"")

Çevrimdışı assenucler

  • Excelce Çavuş
  • ***
  • İleti: 123
  • Puan +1/-1
  • Cinsiyet: Bay
  • Excel'den Daha Fazlası!..
  • Ad Soyad: Selim Şenüçler
  • İl / İlçe: İstanbul / Kadıköy
Ynt: Excel'de Rakamı Yazıya Çevirmek 2 ( .-TL., .-KR. ) (KTF)
« Yanıtla #3 : 30 Eylül 2012, 19:59:38 »
Sayın Bülent Öztürk,


Değerli üstadım, iyi akşamlar. Dinlence gününüzde zaman ayırarak verdiğiniz yanıt için içten teşekkürlerimi sunarım.

Sevgi ve saygılar.

Çevrimdışı Hüseyin Çoban

  • Excelce.Net Yönetici
  • *
  • İleti: 182
  • Puan +11/-0
  • Cinsiyet: Bay
  • Ad Soyad: Hüseyin Çoban
  • İl / İlçe: Denizli
  • İşletim Sisteminiz: Windows 7 - 64 bit
  • Mesleğiniz: Ü.Tğm.
  • Office Versiyonunuz: Office 2007 TR
Ynt: Excel'de Rakamı Yazıya Çevirmek 2 ( .-TL., .-KR. ) (KTF)
« Yanıtla #4 : 30 Eylül 2012, 20:41:34 »
. . .

Merhaba,  Bülent Bey çözümü sunmuş. Alternatif olarakta aşağıdaki şekilde de olabilir.

İlk mesajdaki kodlar için
Kod: [Seç]
="Yalnız "&tlkryaz(A1)
. . .

Çevrimdışı ysntr

  • Excelce Onbaşı
  • **
  • İleti: 5
  • Puan +0/-0
  • Excel'den Daha Fazlası!..
  • Ad Soyad: yasin boztepe
  • Doğum Yılınız: 1975
  • İl / İlçe: sakarya
Ynt: Excel'de Rakamı Yazıya Çevirmek 2 ( .-TL., .-KR. ) (KTF)
« Yanıtla #5 : 15 Kasım 2014, 14:06:01 »
"Katrilyon" nasıl ekleriz

Çevrimdışı ergenekon45

  • Excelce Onbaşı
  • **
  • İleti: 1
  • Puan +0/-0
  • Cinsiyet: Bay
  • Excel'den Daha Fazlası!..
  • Ad Soyad: çççç
  • Doğum Yılınız: 1972
  • İl / İlçe: çankaya-ankara
Ynt: Excel'de Rakamı Yazıya Çevirmek 2 ( .-TL., .-KR. ) (KTF)
« Yanıtla #6 : 26 Şubat 2016, 14:37:46 »
Sayın Hüseyin Çoban,

Emek ve paylaşımınız için teşekkürler.

Bende bu metne dönüşen rakamı yazılırken parantez içine nasıl alınır onu öğrenmek istiyorum
örneğin: "1400,20 (Yalnız Bindörtyüz TL,Yirmi Kr.)"  veya 1400 (Yalnız Bindörtyüz TL) gibi...

Sevgi ve saygılar.