Sayıyı Yazıya Çevirme

Katılım
23 Kasım 2007
Mesajlar
245
Excel Vers. ve Dili
2003
Merhaba arkadaşlar site süper...

Sy, Modalının hazırladığı kodları kullandım ama ufakbir hata var

1.232 Ytl (Birbinikiyüzotuziki Yeni Türk Lirası) olarak çeviriyi

eyer noktadan önce 1 varsa yazmaması gerekiyor birden büyük rakamları yazması gerekiyor

1.232 Ytl (Binikiyüzotuziki Yeni Türk Lirası) Olması gerekiyor

Kodlar:
Option Compare Database

Function YTL(sayi)
x = InStr(1, sayi, ",")
If x > 0 Then
Lira = yaz$(Mid(sayi, 1, x - 1)) & " YENI TÜRK LIRASI "
TempKurus = Mid(sayi, x + 1, 98)
If Len(TempKurus) = 1 Then TempKurus = TempKurus * 10
If Len(TempKurus) > 2 Then TempKurus = Mid(TempKurus, 1, 2)
Kurus = yaz$(TempKurus) & " YENI KURUS"
Else
Lira = yaz$(sayi) & " YENI TÜRK LIRASI "
End If
YTL = Lira & Kurus
End Function
'
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) = "IKI"
b$(3) = "ÜÇ"
b$(4) = "DÖRT"
b$(5) = "BES"
b$(6) = "ALTI"
b$(7) = "YEDI"
b$(8) = "SEKIZ"
b$(9) = "DOKUZ"
y$(0) = ""
y$(1) = "ON"
y$(2) = "YIRMI"
y$(3) = "OTUZ"
y$(4) = "KIRK"
y$(5) = "ELLI"
y$(6) = "ALTMIS"
y$(7) = "YETMIS"
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
a$ = ""
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$ = "BİRBİN") Then e$ = "BİN"
S$ = S$ + e$
Next x
If S$ = "" Then S$ = "SIFIR"
If pozitif = 0 Then S$ = "" + S$
yaz$ = S$
GoTo tamam
hata: yaz$ = "hata"
tamam:
End Function
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın pcman,

Kod:
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)
[COLOR=red]If (x = 3) And (e$ = "BİRBİN") Then e$ = "BİN"
[/COLOR]S$ = S$ + e$
Next x
If S$ = "" Then S$ = "SIFIR"
If pozitif = 0 Then S$ = "" + S$
yaz$ = S$
GoTo tamam
hata: yaz$ = "hata"
tamam:
End Function
Kırmızı olan yerde gördüğünüz gibi düzeltiyor kod hatayı. Siz tekrar bir gözden geçirin.

İyi çalışmalar
 
Katılım
23 Kasım 2007
Mesajlar
245
Excel Vers. ve Dili
2003
IIf &#231;al&#305;&#351;m&#305;yor Birbin yaz&#305;yor
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın pcman,

Hata şurada:

Sayılar dönüştürülürken türkçe İ I olarak yazılmış. If deyiminde ise BİRBİN olarak yazılmış.

Siz hatalı olarak yazılmış I ları İ olarak değiştirin. (BIR, BIN vb) problem hal oluyor.

İyi çalışmalar
 
Katılım
31 Ocak 2006
Mesajlar
145
Excel Vers. ve Dili
Office 2010(64 bit) - Türkçe
burada anlat&#305;lan kodlar&#305;n bulundu&#287;u ana konunun linkini verebilcek olan var m&#305;?
 
Katılım
31 Ocak 2006
Mesajlar
145
Excel Vers. ve Dili
Office 2010(64 bit) - Türkçe
yard&#305;mc&#305; olacak kimse yok mu? mod&#252;l i&#231;ine mi kay&#305;t ederek kullanaca&#287;&#305;z? nas&#305;l olacak ?
 
Son düzenleme:
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın mehmeth_19,

Gördüğünüz gibi yukarıdaki kodlar bir fonksiyona ait. Fonksiyonları modül içine yazılırlarsa uygulamanın tümünde kullanılabilir.

Kod:
Function YTL(sayi)
Gördüğünüz gibi Fonksiyon adı YTL, sayi ise değişkeni.

Uygulamanın herhangi bir yerinde YTL([AlanAdı]) olarak çağırarak fonksiyon kullanılabilir.

Kullanma alanları kod sayfalarında, ifade olarak nesnelerin içinde kullanılabilir.

Bir de arama yapın bu konuyla ilgili forumda çok örnek var. Hem access de hem de excel de.

İyi çalışmalar
 
Katılım
27 Kasım 2006
Mesajlar
152
Excel Vers. ve Dili
office xp
Altın Üyelik Bitiş Tarihi
13-09-2021
İnceleyin Lütfen

Sayın Modalının demiş olduğu değişikleri yaptım yolluyorum bi bakın şimdi düzgün çalışıyor.
 
Katılım
17 Temmuz 2007
Mesajlar
294
Excel Vers. ve Dili
access
Say&#305;n Kocivan karde&#351;im, g&#252;zel uygulama da e&#287;er -(eksi) olan say&#305;lar&#305; yani : -123 say&#305;s&#305;n&#305; nas&#305;l yazacak ,bilgi verirmisiniz.bu konuda bilginiz varsa payla&#351;al&#305;m .
Kolay gelsin
 
Katılım
27 Kasım 2006
Mesajlar
152
Excel Vers. ve Dili
office xp
Altın Üyelik Bitiş Tarihi
13-09-2021
Kod say&#305;n modal&#305;n&#305;n benim de&#287;il eksi yazma konusunda bilgim yok ama u&#287;ra&#351;&#305;yorum belki bi sonu&#231; &#231;&#305;kar yan&#305;t&#305; bulursam hemen ekleyece&#287;im Say&#305;n celoy
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın Celoy,

- olduğunda ne yazmasını istiyorsunuz onu belirtmediniz.

Gerisi kolay üç satırlık kod.

İyi çalışmalar:)
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Soru

Sn. kocivan ve modalı;

Metin1 adlı kutudaki sayıyı silip, yeni bir sayı giremiyorum. Nedeni ne olabilir.
Teşekkürler.
 
Katılım
27 Kasım 2006
Mesajlar
152
Excel Vers. ve Dili
office xp
Altın Üyelik Bitiş Tarihi
13-09-2021
&#199;&#252;nk&#252; ben &#246;rne&#287;i yollarken Metin1'in denetim kayna&#287;&#305;n&#305; =1232 yapt&#305;m metin1'in &#246;zellik ayarlar&#305;ndan veri denetim kayna&#287;&#305; =1232'yi sil varsay&#305;lan de&#287;ere 0 yaz sonra kaydet ondan sonra veri girebilirsin.
 
Katılım
17 Temmuz 2007
Mesajlar
294
Excel Vers. ve Dili
access
say&#305;n modal&#305; hocam &#246;ncelikle kolay gelsin
benim toplamlar&#305;mda sonu&#231; duruma g&#246;re bazen - olarak &#231;&#305;k&#305;yor ancak bu &#231;&#305;kan sonucun - olarak parantez i&#231;inde &#246;rne&#287;in: "( -eksi )binbe&#351;y&#252;zelli yeni t&#252;rk lira" gibi yazmas&#305;n&#305; istiyorum .yani eksi oldu&#287;unu bir&#351;ekilde belli olmas&#305; dikkat &#231;ekmesi gerekiyor,bazen sonu&#231; eksi &#231;&#305;kt&#305;&#287;&#305;nda bunun - oldu&#287;u belli olmuyor.bunu yapabilirsek ihtiyac&#305; olan arkada&#351;larda faydalan&#305;r diye d&#252;&#351;&#252;n&#252;yorum.
ilginize te&#351;ekk&#252;rler
 
Katılım
31 Ocak 2006
Mesajlar
145
Excel Vers. ve Dili
Office 2010(64 bit) - Türkçe
sayın modalı hocam öncelikle kolay gelsin
benim toplamlarımda sonuç duruma göre bazen - olarak çıkıyor ancak bu çıkan sonucun - olarak parantez içinde örneğin: "( -eksi )binbeşyüzelli yeni türk lira" gibi yazmasını istiyorum .yani eksi olduğunu birşekilde belli olması dikkat çekmesi gerekiyor,bazen sonuç eksi çıktığında bunun - olduğu belli olmuyor.bunu yapabilirsek ihtiyacı olan arkadaşlarda faydalanır diye düşünüyorum.
ilginize teşekkürler
="(-eksi)" & YTL([alan])

fonksiyonu bu şekilde kullandığın takdirde sorununu çözebilirsin. ayrıca tırnak içindeki ifadeyi istediğin gibi değiştirebilirsin.

köşeli parantez içindeki kısma ise çevrilmesi gereken alan adını yaz ok ;)
 
Katılım
17 Temmuz 2007
Mesajlar
294
Excel Vers. ve Dili
access
say&#305;n mehmety 19
ilginize te&#351;ekk&#252;r ederim ,belirtti&#287;iniz &#351;eyi denedim ancak sonu&#231; - oldu&#287;unda eksi oluyor ancak + oldu&#287;undada - aynen kal&#305;yor,benim istedi&#287;im sonu&#231; -'ye d&#252;&#351;t&#252;&#287;&#252;nde - i&#351;areti &#231;&#305;ks&#305;n,bu ise - olarak devaml&#305; sonu&#231;ta kal&#305;yor,d&#252;zeltme yaparsan&#305;z seviniriz.
kolay gelsin
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
=e&#287;er([alan]=>0;YTL([alan]);"(-eksi)" & YTL([alan])

&#351;eklinde deneyin, biraz excelce oldu siz acces i&#231;in sityorsunuz galiba ama ayn&#305; mant&#305;kla olur
 
Katılım
31 Ocak 2006
Mesajlar
145
Excel Vers. ve Dili
Office 2010(64 bit) - Türkçe
sayın mehmety 19
ilginize teşekkür ederim ,belirttiğiniz şeyi denedim ancak sonuç - olduğunda eksi oluyor ancak + olduğundada - aynen kalıyor,benim istediğim sonuç -'ye düştüğünde - işareti çıksın,bu ise - olarak devamlı sonuçta kalıyor,düzeltme yaparsanız seviniriz.
kolay gelsin
ben sürekli eksi istediğinizi düşünerek o kodu verdim.
şimdi şunu deneyin =IIf([alan]<0;"(-eksi)" & ytl([alan]);ytl([alan]))
formüldeki alan isimlerini veri tabanınızda karşılık gelen isimle değiştirin sadece ;)
 
Üst