ptcsite
Altın Üye
- Katılım
- 8 Nisan 2016
- Mesajlar
- 139
- Excel Vers. ve Dili
- M.OFFICE 2021 TR 64 Bit
İyi günler;
Ben aşağıdaki makro ile rakamsal para tutarını yazıya çeviriyorum.
Bu makroda A3 Hücresine 150.000 Yazıyorum; B3 Hücresince "=ParaCevir(A3)" formulü ile rakamı yazı halinde yazmasını sağlıyorum.
Sorum Şu: Ben bu makrolu kitabı başka bir bilgisayara kopyalayıp açtığımda A3 hücresine 150.000 veya başka rakam yazdığımda
komutun önünde bir yol gösteriyor ve hücrede AD? yazıyor. Ben bu makroyu sabitlemek istiyorum. Yani her defasında önündeki ibareyi silip durmak sıkıyor. Bu durumda makro koduna ne yazmam gerek veya bir başka yolu var mı?
Ben aşağıdaki makro ile rakamsal para tutarını yazıya çeviriyorum.
Public Function ParaCevir(Para)
Dim ParaStr As String
Dim TL As String, Kurus As String
If Not IsNumeric(Para) Then GoTo SayiDegil
ParaStr = Format(Abs(Para), "0.00")
TL = Left(ParaStr, Len(ParaStr) - 3)
Kurus = Right(ParaStr, 2)
ParaCevir = IIf(Para < 0, "Eksi ", "") & Cevir(TL) & "TürkLirası" & Cevir(Kurus) & "Kuruş"
Exit Function
SayiDegil:
ParaCevir = "GİRİLEN DEĞER SAYI DEĞİL!"
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
Bu makroda A3 Hücresine 150.000 Yazıyorum; B3 Hücresince "=ParaCevir(A3)" formulü ile rakamı yazı halinde yazmasını sağlıyorum.
Sorum Şu: Ben bu makrolu kitabı başka bir bilgisayara kopyalayıp açtığımda A3 hücresine 150.000 veya başka rakam yazdığımda
komutun önünde bir yol gösteriyor ve hücrede AD? yazıyor. Ben bu makroyu sabitlemek istiyorum. Yani her defasında önündeki ibareyi silip durmak sıkıyor. Bu durumda makro koduna ne yazmam gerek veya bir başka yolu var mı?
