rakamı yazıya çevirme

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sn sıtkı

biede şu işlevi deneyiniz.

=EÐER(SAYIYAÇEVİR(SAÐDAN(A1;1))<5;A1+(5-SAYIYAÇEVİR(SAÐDAN(A1;1)))/100;A1)
 
Katılım
13 Nisan 2007
Mesajlar
3
Excel Vers. ve Dili
excel 2003 makrolar vb
yardımcı olurmusunuz

ben exelde bu vermiş olduğunuz programı bütün sayfalarda kullanmak istiyorum yardımcı olurmusunuz
 
Katılım
2 Şubat 2005
Mesajlar
11
Rakamı Yazıya Çevirme

Arkadaşlar ofis 2003 te makro olarak kaydettiğim "Rakamı Yazıya Çevir" makrosu Ofis 2007 de hata veriyor. Bu konuda bilgisi olan varsa bir zahmet açıklarsa sevinirim.
 
Katılım
24 Mart 2008
Mesajlar
2
Excel Vers. ve Dili
2003
arkadaşlar visual basic nedir bu rakamı yazıya çevirme işlemini sanki excelle yeni başlar gibi anlatırsanız sevinirim hiç bişi anlayamadım cahilliğime verin.
 
Katılım
24 Mart 2008
Mesajlar
2
Excel Vers. ve Dili
2003
merhaba &#246;ncelikle &#231;ok faydal&#305; bir forum olmu&#351; tebrik ederim ama ben epeyce yabanc&#305;y&#305;m bu konulara rakam&#305; yaz&#305;ya &#231;evirmek ile ilgili bir pr&#305;blemim var. &#246;nce visual basic ayarlar&#305;ndan falan bahsedildi anlayamad&#305;m herkes a&#351;inas&#305; oldu&#287;u konular&#305; anlatm&#305;&#351; ben anlayamad&#305;m nas&#305;l yapabilirim yard&#305;mc&#305; olurmusun?
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Merhaba arkadaşlar,

Yukarıdaki makroyu aldım. A1 hücresindeki bir rakamı A2 hücresine yazı olarak nasıl yazarım yardımcı olurmusunuz lütfen
 
Katılım
7 Ekim 2009
Mesajlar
7
Excel Vers. ve Dili
İş: Office 2003 Tr
Ev: Office 2007 Eng.
Sn muygun

Uyarınızı dikkate alarak kodda bir değişiklik yaptım. Yaptığım değişiklik aşağıdaki gibidir. Ekide incelerseniz işlevin sıfır lira ve sıfır kuruş yazmadığını göreceksiniz.

Selamlar

[vb:1:377c858028]Public Function ParaCevir(Para)
Dim ParaStr As String
Dim Lira As String, Kurus As String

If Not IsNumeric(Para) Then GoTo SayiDegil

ParaStr = Format(Abs(Para), "0.00")

Lira = Left(ParaStr, Len(ParaStr) - 3)
Kurus = Right(ParaStr, 2)
If Lira = 0 Then
ParaCevir = Cevir(Kurus) & " Kuruş"
Exit Function
End If
If Kurus = 0 Then
ParaCevir = IIf(Para < 0, "Eksi ", "") & Cevir(Lira) & " Lira"
Exit Function
End If
ParaCevir = IIf(Para < 0, "Eksi ", "") & Cevir(Lira) & " Lira " & Cevir(Kurus) & " Kuruş"
Exit Function
SayiDegil:
ParaCevir = "GİRİLEN DEÐER SAYI DEÐİL!"
End Function[/vb:1:377c858028]
Sn. Menteşoğlu "rakamı sayıya çevirmek" konusunda bence en başarılı formül sizin yukarıda yazmış olduğunu formüldür, kuşkusuz. Çok teşekkürler. Fakat şöyle küçük bir sorun yaşadım formül excel 2003 te sorunsuz çalışmakta lakin excel 2007 de hata vermektedir. Acaba ben mi beceremedim yoksa gerçekten formül excel 2007 de çalışmamaktamıdır? ilgi ve alakanıza şimdiden çok teşekkürler. Selamlar...
 
Katılım
29 Haziran 2010
Mesajlar
3
Excel Vers. ve Dili
Office XP (Excel 2002 SP3)
Arkadaslar benim pc de daha once Office 2003 kurulu idi.. sonra begenmedim ve office XP yukledim. Office surumunu degistirdikten sonra Paracevir fonksiyonu calismaz oldu.. eski *.xla dosyam duruyor. Ben bunu c:\windows un altina atarak calistirmistim. simdi yine eski yerinde ama calismiyor. #AD? seklinde hata veriyor.
 
Katılım
20 Haziran 2008
Mesajlar
697
Excel Vers. ve Dili
Microsoft Office ev ve iş 2019
Altın Üyelik Bitiş Tarihi
03-07-2024
sayın aLoneR aşağıdaki kodu vba da yeni bir module ekleyin çalışacaktır
Kodlar daha önceden bu siteden alıntıdır.bende sorunsuz çalışmaktadır.

kodu kaydettikten sonra formül =paracevir(C26;"TL";"KRŞ")

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
 
Katılım
29 Haziran 2010
Mesajlar
3
Excel Vers. ve Dili
Office XP (Excel 2002 SP3)
Mustafa Bey ilginizden dolayi cok tesekkur ederim. Sanirim benim sorunum kodlarla degil.
soyle ki.. benim sistemimde kurulu olan office de sanirim cok ileri duzeyde guvenlik engeli var ve makrolarin calismasina musaade etmiyor. su ana kadar bunu cozebildim. *.xla uzantili dosyayi manuel olarak bir defa calistirinca butun excel sayfalarinda sorunsuz calisiyor. Fakat excel uygulamasindan tamamen cikip yeniden sadece excel acmaya kalkinca baglanti guncellemesi soruyor. eskiden sormuyordu. baglantilari guncelle deyince de makronun yerini bulamiyor ve yine hata veriyor.
 
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
07-02-2024
Mustafa Bey ilginizden dolayi cok tesekkur ederim. Sanirim benim sorunum kodlarla degil.
soyle ki.. benim sistemimde kurulu olan office de sanirim cok ileri duzeyde guvenlik engeli var ve makrolarin calismasina musaade etmiyor. su ana kadar bunu cozebildim. *.xla uzantili dosyayi manuel olarak bir defa calistirinca butun excel sayfalarinda sorunsuz calisiyor. Fakat excel uygulamasindan tamamen cikip yeniden sadece excel acmaya kalkinca baglanti guncellemesi soruyor. eskiden sormuyordu. baglantilari guncelle deyince de makronun yerini bulamiyor ve yine hata veriyor.
Dostum *.xla türü eklenti ile rakamı yazıya çevrilen dosyalar kopyalanınca veya her hangi bir makinada hazırladığın kitabı farklı bir makinada açınca da aynı hatayı veriyor. Bunun çözümü rakamı yazıya çeviren formülün bulunduğu hücrelerdeki formülleri yenilemen gerekiyor.
Yada excelin genelinde bu uygulamayı çalıştırmak istemezsen eğer aşağıdaki kodu yeni bir modül içerisine yapıştırman yeterli olur.
Bu uygulama sadece modülün eklendiği kitapta çalışır, başka uygulamalarda da kullanmak istersen aynı modülü diğer kitaplarına da kopyalaman gerekir.
Kodlar forumdan alıntıdır.
Kod:
Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v(15)
Dim c(3)

Function yaz$(sayi)


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(Int(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 hata1

Next x



If Len(a$) > 15 Then GoTo hata1

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$

GoTo tamam1

hata1: s$ = "Hata1"

tamam1:

''''''''''''


a$ = Str(CInt((sayi * 100) - Int(sayi) * 100))



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 hata2



Next x



If Len(a$) > 15 Then GoTo hata2

a$ = String(15 - Len(a$), "0") + a$



For x = 1 To 15

v(x) = Val(Mid$(a$, x, 1))

Next x



kr$ = ""

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"

kr$ = kr$ + e$

Next x



If kr$ = "" Then kr$ = "Sıfır"

If pozitif = 0 Then kr$ = "Eksi" + kr$


'''''''''''

GoTo tamam2

hata2: kr$ = "Hata2"

tamam2:

If s$ = "Sıfır" And kr$ <> "Sıfır" Then yaz$ = kr$ + "-KR"
If s$ <> "Sıfır" And kr$ = "Sıfır" Then yaz$ = s$ + "-TL "
If s$ = "Sıfır" And kr$ = "Sıfır" Then yaz$ = ""
If s$ <> "Sıfır" And kr$ <> "Sıfır" Then yaz$ = s$ + "-TL " + kr$ + "-KR"

End Function
 
Katılım
29 Haziran 2010
Mesajlar
3
Excel Vers. ve Dili
Office XP (Excel 2002 SP3)
ılgınızden dolayı tesekkurler arkadaslar. Sorunu cozmek uzereyım. Emeklerınız ıcın cok sagolun.
 
Üst