- Katılım
- 9 Temmuz 2008
- Mesajlar
- 1
- Excel Vers. ve Dili
- 2003 TÜRKÇE
öncelikle bu formülü giriyorum
Function Yaziyla(Sayi#)
Dim virgul2 As String
Dim cevap As String
Dim yazi As String
Dim Say As String
Dim uclu As String
Dim virgul As Integer
Dim o As Integer
Dim b As Integer
Dim x As Integer
Dim i As Integer
Dim y As Integer
Dim YTL As String
Dim YKR As String
If Sayi# = 0 Then Yaziyla = "Sıfır": Exit Function
ReDim birler$(10), onlar$(10), basamak$(5)
birler$(0) = "": birler$(1) = "Bir"
birler$(2) = "İki": birler$(3) = "Üç"
birler$(4) = "Dört": birler$(5) = "Beş"
birler$(6) = "Altı": birler$(7) = "Yedi"
birler$(8) = "Sekiz": birler$(9) = "Dokuz"
onlar$(0) = "": onlar$(1) = "On"
onlar$(2) = "Yirmi": onlar$(3) = "Otuz"
onlar$(4) = "Kırk": onlar$(5) = "Elli"
onlar$(6) = "Altmış": onlar$(7) = "Yetmiş"
onlar$(8) = "Seksen": onlar$(9) = "Doksan"
basamak$(1) = "": basamak$(2) = "Bin "
basamak$(3) = "Milyon ": basamak$(4) = "Milyar "
basamak$(5) = "Trilyon "
virgul2 = ""
cevap = ""
YTL = ".-YTL., "
YKR = ".-YKR."
Say = Str$(Sayi#)
virgul = InStr(1, Say, ".")
If virgul Then
If Len(Mid(Say, virgul + 1)) = 1 Then Say = Say + "0"
Say = Right$(Say, Len(Say) - virgul)
GoSub cevir
If cevap = "" Then YKR = ""
virgul2 = cevap + YKR
cevap = ""
Say = Str$(Sayi#)
Say = Left$(Say, virgul - 1)
End If
GoSub cevir
If cevap = "" Then YTL = ""
Yaziyla = cevap + YTL + virgul2
Exit Function
cevir:
x = Len(Say)
Say = String$(3 - (x - Int(x / 3) * 3), 48) + Say
x = Len(Say) / 3
For i = 1 To x
uclu = Mid$(Say, Len(Say) - i * 3 + 1, 3)
y = Val(Mid$(uclu, 1, 1))
o = Val(Mid$(uclu, 2, 1))
b = Val(Mid$(uclu, 3, 1))
yazi = ""
If y <> 0 Then
If y > 1 Then yazi = birler$
yazi = yazi + "Yüz "
End If
yazi = yazi + onlar$(o) + birler$(b)
If yazi <> "" Then
If LCase(yazi) = "bir" And i = 2 Then yazi = ""
cevap = yazi + basamak$(i) + cevap
End If
Next i
If Sayi# < 0 Then cevap = "-Eksi-" + cevap
Return
End Function
bunun üzerine konuyla ilgili benim bir kaç sorum olacak cevap verirseniz sevinirim
1 - ) alt+F11 yaparak bu kodu insert den module yazan yare yazıyorum ve save deyip çıkıyorum lakin çalışma sayfasına gelince =yaziyla(B13) örnekteki gibi yazınca AD? yazıyor acaba nerde yanlış yapıyorum
2 - ) başka bir çalışma sayfasında denedim bir kez çalıştı güvenlik sertifikası yüklü olduğu için modül çalışmıyor dedi ikincisinde bunu nasıl hallederim
3 - ) bu formülü her çalışma sayfası için ayrı ayrı tanıtıp kaydetmekmi gerkiyor ?
öncelikle bu konuya cevap verecek arkadaşlar için öncelikle teşekkür ederim
Function Yaziyla(Sayi#)
Dim virgul2 As String
Dim cevap As String
Dim yazi As String
Dim Say As String
Dim uclu As String
Dim virgul As Integer
Dim o As Integer
Dim b As Integer
Dim x As Integer
Dim i As Integer
Dim y As Integer
Dim YTL As String
Dim YKR As String
If Sayi# = 0 Then Yaziyla = "Sıfır": Exit Function
ReDim birler$(10), onlar$(10), basamak$(5)
birler$(0) = "": birler$(1) = "Bir"
birler$(2) = "İki": birler$(3) = "Üç"
birler$(4) = "Dört": birler$(5) = "Beş"
birler$(6) = "Altı": birler$(7) = "Yedi"
birler$(8) = "Sekiz": birler$(9) = "Dokuz"
onlar$(0) = "": onlar$(1) = "On"
onlar$(2) = "Yirmi": onlar$(3) = "Otuz"
onlar$(4) = "Kırk": onlar$(5) = "Elli"
onlar$(6) = "Altmış": onlar$(7) = "Yetmiş"
onlar$(8) = "Seksen": onlar$(9) = "Doksan"
basamak$(1) = "": basamak$(2) = "Bin "
basamak$(3) = "Milyon ": basamak$(4) = "Milyar "
basamak$(5) = "Trilyon "
virgul2 = ""
cevap = ""
YTL = ".-YTL., "
YKR = ".-YKR."
Say = Str$(Sayi#)
virgul = InStr(1, Say, ".")
If virgul Then
If Len(Mid(Say, virgul + 1)) = 1 Then Say = Say + "0"
Say = Right$(Say, Len(Say) - virgul)
GoSub cevir
If cevap = "" Then YKR = ""
virgul2 = cevap + YKR
cevap = ""
Say = Str$(Sayi#)
Say = Left$(Say, virgul - 1)
End If
GoSub cevir
If cevap = "" Then YTL = ""
Yaziyla = cevap + YTL + virgul2
Exit Function
cevir:
x = Len(Say)
Say = String$(3 - (x - Int(x / 3) * 3), 48) + Say
x = Len(Say) / 3
For i = 1 To x
uclu = Mid$(Say, Len(Say) - i * 3 + 1, 3)
y = Val(Mid$(uclu, 1, 1))
o = Val(Mid$(uclu, 2, 1))
b = Val(Mid$(uclu, 3, 1))
yazi = ""
If y <> 0 Then
If y > 1 Then yazi = birler$
yazi = yazi + "Yüz "
End If
yazi = yazi + onlar$(o) + birler$(b)
If yazi <> "" Then
If LCase(yazi) = "bir" And i = 2 Then yazi = ""
cevap = yazi + basamak$(i) + cevap
End If
Next i
If Sayi# < 0 Then cevap = "-Eksi-" + cevap
Return
End Function
bunun üzerine konuyla ilgili benim bir kaç sorum olacak cevap verirseniz sevinirim
1 - ) alt+F11 yaparak bu kodu insert den module yazan yare yazıyorum ve save deyip çıkıyorum lakin çalışma sayfasına gelince =yaziyla(B13) örnekteki gibi yazınca AD? yazıyor acaba nerde yanlış yapıyorum
2 - ) başka bir çalışma sayfasında denedim bir kez çalıştı güvenlik sertifikası yüklü olduğu için modül çalışmıyor dedi ikincisinde bunu nasıl hallederim
3 - ) bu formülü her çalışma sayfası için ayrı ayrı tanıtıp kaydetmekmi gerkiyor ?
öncelikle bu konuya cevap verecek arkadaşlar için öncelikle teşekkür ederim