25-11-2014, 16:51
(En son düzenleme: 25-11-2014, 16:53 Nevzat Gürbüz.)
Merhaba
Sayın Taruz arkadaşımızın sayıyı yazıya çevirme modulunu kullanıyorum.
Modul:
Function YTL(sayi)
On Error GoTo Taruz
X = InStr(1, sayi, ",")
If X > 0 Then
Lira = yaz$(Mid(sayi, 1, X - 1)) & " TÜRK LİRASI "
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) & " KURUŞ"
Else
Lira = yaz$(sayi) & " TÜRK LİRASI "
End If
YTL = Lira & Kurus
Taruz:
Exit Function
End Function
'
Function yaz$(sayi)
Dim B$(9)
Dim Y$(9)
Dim M$(4)
Dim V$(15)
Dim C$(3)
B$(0) = ""
B$(1) = "BİR"
B$(2) = "İKİ"
B$(3) = "ÜÇ"
B$(4) = "DÖRT"
B$(5) = "BEŞ"
B$(6) = "ALTI"
B$(7) = "YEDİ"
B$(8) = "SEKİZ"
B$(9) = "DOKUZ"
Y$(0) = ""
Y$(1) = "ON"
Y$(2) = "YİRMİ"
Y$(3) = "OTUZ"
Y$(4) = "KIRK"
Y$(5) = "ELLİ"
Y$(6) = "ALTMIŞ"
Y$(7) = "YETMIŞ"
Y$(8) = "SEKSEN"
Y$(9) = "DOKSAN"
M$(0) = "TRİLYON"
M$(1) = "MİLYAR"
M$(2) = "MİLYON"
M$(3) = "BİN"
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
kendi yapmış olduğum bilgisayarlarımda hiç hata vermedi. Bugün Fatura programı olarak başka iki bilgisayara yükledim. Bilgisayarın birinde çevirmede hata yazdı.Diğer bilgisayarda hata yok. Dikkat ettim hata 125,18 TL gibi kuruşlar sıfır olmadığında verdi. Yani 125.00TL olursa hata vermeden çeviriyor.Ama 125,18 TL olursa hata mesajı veriyor. Bu sorun Bilgisayarda diye düşünüyorum ama bir türlü bulamadım.Yardımcı olabilir misiniz.
Sayın Taruz arkadaşımızın sayıyı yazıya çevirme modulunu kullanıyorum.
Modul:
Function YTL(sayi)
On Error GoTo Taruz
X = InStr(1, sayi, ",")
If X > 0 Then
Lira = yaz$(Mid(sayi, 1, X - 1)) & " TÜRK LİRASI "
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) & " KURUŞ"
Else
Lira = yaz$(sayi) & " TÜRK LİRASI "
End If
YTL = Lira & Kurus
Taruz:
Exit Function
End Function
'
Function yaz$(sayi)
Dim B$(9)
Dim Y$(9)
Dim M$(4)
Dim V$(15)
Dim C$(3)
B$(0) = ""
B$(1) = "BİR"
B$(2) = "İKİ"
B$(3) = "ÜÇ"
B$(4) = "DÖRT"
B$(5) = "BEŞ"
B$(6) = "ALTI"
B$(7) = "YEDİ"
B$(8) = "SEKİZ"
B$(9) = "DOKUZ"
Y$(0) = ""
Y$(1) = "ON"
Y$(2) = "YİRMİ"
Y$(3) = "OTUZ"
Y$(4) = "KIRK"
Y$(5) = "ELLİ"
Y$(6) = "ALTMIŞ"
Y$(7) = "YETMIŞ"
Y$(8) = "SEKSEN"
Y$(9) = "DOKSAN"
M$(0) = "TRİLYON"
M$(1) = "MİLYAR"
M$(2) = "MİLYON"
M$(3) = "BİN"
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
kendi yapmış olduğum bilgisayarlarımda hiç hata vermedi. Bugün Fatura programı olarak başka iki bilgisayara yükledim. Bilgisayarın birinde çevirmede hata yazdı.Diğer bilgisayarda hata yok. Dikkat ettim hata 125,18 TL gibi kuruşlar sıfır olmadığında verdi. Yani 125.00TL olursa hata vermeden çeviriyor.Ama 125,18 TL olursa hata mesajı veriyor. Bu sorun Bilgisayarda diye düşünüyorum ama bir türlü bulamadım.Yardımcı olabilir misiniz.


