• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Sayıyı Yazıya Çevirme

  • Konbuyu başlatan Konbuyu başlatan pcman
  • Başlangıç tarihi Başlangıç tarihi
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
 
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
 
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
 
burada anlat&#305;lan kodlar&#305;n bulundu&#287;u ana konunun linkini verebilcek olan var m&#305;?
 
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:
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
 
İ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.
 
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
 
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
 
Sayın Celoy,

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

Gerisi kolay üç satırlık kod.

İyi çalışmalar:)
 
Soru

Sn. kocivan ve modalı;

Metin1 adlı kutudaki sayıyı silip, yeni bir sayı giremiyorum. Nedeni ne olabilir.
Teşekkürler.
 
&#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.
 
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
 
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 ;)
 
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
 
=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
 
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 ;)
 
Geri
Üst