• DİKKAT

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

Makrolu Excel dosyası Kopyalayınca Makro Çalışmıyor

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.
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ı?
 
Örnek dosyanızı ekler misiniz.
 
Buyrun:

(Size gönderdikten sonra inşallah dediğim hatayı alırsınız :)

Sadece rtakam girilecek yere rakam yazacaksınız. Eğer hata almıyorsanız Bir USB bellek ile başka bir bilgisayara taşımanızı isterim. Çünkü bende öyle çıkıyor hata.
 
Son düzenleme:
Hatanın sebebi O sütununa yazdığınız formülde.
EĞER(L4="";"";'C:\Users\****\AppData\Roaming\Microsoft\AddIns\GeneralServices.xla'!ParaCevir(L4))
şeklinde yazılı.
Bunu EĞER(L3="";"";ParaCevir(L3)) olarak değiştirin.
 
Son düzenleme:
Yukarda yazdığım gibi yaptıktan sonra kopyaladım. Sıkıntı olmadan çalıştı.
 
Geri
Üst