Yazılan rakamları yazıya dönüştürmek

Katılım
15 Nisan 2006
Mesajlar
4
Selam. Bir hücreye yazılan sayıyı yazı ile başka bir hücreye okuması için makro gerekli.Ekte birkaç makro var ama 10 basamaklı sayıları okumuyor, hatayı bulamadım veya başka bir yolu varsa lütfen yardım edin.
 
Katılım
21 Haziran 2007
Mesajlar
1
Excel Vers. ve Dili
excell xp professional turkçe
hücredeki rakamı ( özellikle fatura tutarı gibi, iki haneli kuruşlu bedelleri )
yazıya çevirecek makro ile ilgili aşağıdaki linki açamıyorum,
yukarıdaki konu ile ilgili gelişme veya çözüm önerisi yazabilir misiniz
teşekkürler

"Madem makro kullanacaksınız, neden forumdaki diğer makro örneklerini kullanmıyorsunuz?
Mesela arama sonucu bulduğum bir link;
http://www.excel.web.tr/viewtopic.php?t=16550 "
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
yanıt

=yaz(A1) Kullanım şekli.
Kod:
Function yaz$(sayi)
  Dim b$(9)
  Dim y$(9)
  Dim m$(4)
  Dim v(15)
  Dim c(3)

  b$(0) = ""
  b$(1) = "Bir"
  b$(2) = "İki"
  b$(3) = "Üç"
  b$(4) = "Dört"
  b$(5) = "Beş"
  b$(6) = "Altı"
  b$(7) = "Yedi"
  b$(8) = "Sekiz"
  b$(9) = "Dokuz"

  y$(0) = ""
  y$(1) = "On"
  y$(2) = "Yirmi"
  y$(3) = "Otuz"
  y$(4) = "Kırk"
  y$(5) = "Elli"
  y$(6) = "Altmış"
  y$(7) = "Yetmiş"
  y$(8) = "Seksen"
  y$(9) = "Doksan"

  m$(0) = "Trilyon"
  m$(1) = "Milyar"
  m$(2) = "Milyon"
  m$(3) = "Bin"
  m$(4) = ""

  a$ = Str(sayi)

  If Left$(a$, 1) = " " Then pozitif = 1 Else pozitif = 0
  a$ = Right$(a$, Len(a$) - 1)
  For x = 1 To Len(a$)
    If (Asc(Mid$(a$, x, 1)) > Asc("9")) Or (Asc(Mid$(a$, x, 1)) < Asc("0")) Then GoTo hata
  Next x

  If Len(a$) > 15 Then GoTo hata
  a$ = String(15 - Len(a$), "0") + a$

  For x = 1 To 15
    v(x) = Val(Mid$(a$, x, 1))
  Next x

  s$ = ""
  For x = 0 To 4
    c(1) = v((x * 3) + 1)
    c(2) = v((x * 3) + 2)
    c(3) = v((x * 3) + 3)
    If c(1) = 0 Then
      e$ = ""
    ElseIf c(1) = 1 Then
      e$ = "Yüz"
    Else
      e$ = b$(c(1)) + "Yüz"
    End If
    e$ = e$ + y$(c(2)) + b$(c(3))
    If e$ <> "" Then e$ = e$ + m$(x)
    If (x = 3) And (e$ = "BirBin") Then e$ = "Bin"
    s$ = s$ + e$
  Next x

  If s$ = "" Then s$ = "Sıfır"
  If pozitif = 0 Then s$ = "Eksi" + s$

  yaz$ = s$
  GoTo tamam
hata: yaz$ = "Hata"
tamam:
End Function
 
Üst