• DİKKAT

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

yazıyaçevir makrosu hakkında

Katılım
19 Kasım 2004
Mesajlar
6
arkadaşlar selamlar...
yazıya çevir makrosunda köprü ile aldığım değerde hata veriyor
örneğin a1 deki değeri bulmak için a1 hücresine =a10 formülü var
ve a1 daki rakamı a1 e yazdırıyorum
b1 hücresine de =yaziyacevir(a1) formülünü giriyorum. #AD hatası veriyor. bunu önleyemezmiyim. çünkü bir çok rakam diğer hücrelerdeki değerlerden eşitlenme olarak alınıyor...
 
sayın korikoss,
Vermiş olduğunuz hata kodu ,Function tanımlamasının yapılmadığını belirtiyor.Başka bir hücrede yazmış olduğunuz rakamı sayıya çeviriyor mu?Mesela A5'e 25 yazıp yaziyacevir(A5) yazın.Aynı hatayı alacak mısınız bakalım.
 
ilgilinze teşekkürler,, sorun çözüldü, hata yapmışım. çok saolun... güzel güzel çalışıyor şimidi :hihoho:
 
ya ustalar bende şimdi buunla uğraşşuıyorum ama yaapamıyorum
ad hatası yazıyor
 
üstad. mesela a1 in içine 20 azıyorum. b2 yede yaziyacevir(a1) yazıyorum ad hatası veriyorr
 
üstad. mesela a1 in içine 20 azıyorum. b2 yede yaziyacevir(a1) yazıyorum ad hatası veriyorr


Bu şekilde olmaz.

yaziyacevir bir kullanıcı tanımlı fonksiyondur.

Bunun kodlarının sizin dosyada olması gerekir. Aksi akdirde çalışmaz.

1. Dosyanızı açın.

2. ALT+F11 tuşlarına aynı anda basın.

3. Gelen yerden Insert/Module ile bir mödül ekleyin.

5. Aşağıdaki kodları kopyalayın.

4. Ekelediğiniz modülün içine girip, yapıştırın.

Kopyalayacağınız kodlar:

Public Function YAZIYACEVIR(Para_Tutar)

Dim Para_TutarStr As String
Dim ParaBirimi As String, ParaAltBirimi As String

HücreAdı = Para_Tutar.Address

If Para_Tutar = "" Then
YAZIYACEVIR = HücreAdı & " Hücresine bir değer girmelisiniz !..."
Exit Function
End If

If Not IsNumeric(Para_Tutar) Then
YAZIYACEVIR = HücreAdı & " Hücresine girilen değer, sayı değil !..."
Exit Function
End If

ParaStr = Format(Abs(Para_Tutar), "0.00")
ParaBirimi = Left(ParaStr, Len(ParaStr) - 3)
ParaAltBirimi = Right(ParaStr, 2)

YAZIYACEVIR = IIf(Para_Tutar = 0, "Yalnız " & Cevir(ParaBirimi) & " YTL ", "") & _
IIf(Para_Tutar <> 0, "Yaln&#305;z ", "") & _
IIf(Para_Tutar < 0, "Eksi (-) ", "") & _
IIf(Para_Tutar <> 0, Cevir(ParaBirimi) & " YTL ", "") & _
IIf(Val(ParaAltBirimi) <> 0, Cevir(ParaAltBirimi) & " YKr.", "")

If ParaBirimi = 0 And ParaAltBirimi > 0 Then
YAZIYACEVIR = "Yaln&#305;z " & Cevir(ParaAltBirimi) & " YKr."

If Para_Tutar < 0 And ParaAltBirimi > 0 Then
YAZIYACEVIR = "Yaln&#305;z Eksi (-) " & Cevir(ParaAltBirimi) & " YKr."

End If

End If

End Function

Private Function Cevir(SayiStr As String) As String

Dim Rakam(15)
Dim c(3), Sonuc, e

Birler = Array("", "bir", "iki", "&#252;&#231;", "d&#246;rt", "be&#351;", "alt&#305;", "yedi", "sekiz", "dokuz")
Onlar = Array("", "on", "yirmi", "otuz", "k&#305;rk", "elli", "altm&#305;&#351;", "yetmi&#351;", "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&#252;z"
Else
e = Birler(c(1)) + "y&#252;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&#305;f&#305;r"

Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) - 1)
End Function





Not:Kodlar al&#305;nt&#305;d&#305;r.



.
 
ekteki Dosyayı beni oku daki gibi excele ekleyin ve kullanın hayırlı olsun :D
 
Bu şekilde olmaz.

yaziyacevir bir kullanıcı tanımlı fonksiyondur.

Bunun kodlarının sizin dosyada olması gerekir. Aksi akdirde çalışmaz.

1. Dosyanızı açın.

2. ALT+F11 tuşlarına aynı anda basın.

3. Gelen yerden Insert/Module ile bir mödül ekleyin.

5. Aşağıdaki kodları kopyalayın.

4. Ekelediğiniz modülün içine girip, yapıştırın.

Kopyalayacağınız kodlar:

Public Function YAZIYACEVIR(Para_Tutar)

Dim Para_TutarStr As String
Dim ParaBirimi As String, ParaAltBirimi As String

HücreAdı = Para_Tutar.Address

If Para_Tutar = "" Then
YAZIYACEVIR = HücreAdı & " Hücresine bir değer girmelisiniz !..."
Exit Function
End If

If Not IsNumeric(Para_Tutar) Then
YAZIYACEVIR = HücreAdı & " Hücresine girilen değer, sayı değil !..."
Exit Function
End If

ParaStr = Format(Abs(Para_Tutar), "0.00")
ParaBirimi = Left(ParaStr, Len(ParaStr) - 3)
ParaAltBirimi = Right(ParaStr, 2)

YAZIYACEVIR = IIf(Para_Tutar = 0, "Yalnız " & Cevir(ParaBirimi) & " YTL ", "") & _
IIf(Para_Tutar <> 0, "Yalnız ", "") & _
IIf(Para_Tutar < 0, "Eksi (-) ", "") & _
IIf(Para_Tutar <> 0, Cevir(ParaBirimi) & " YTL ", "") & _
IIf(Val(ParaAltBirimi) <> 0, Cevir(ParaAltBirimi) & " YKr.", "")

If ParaBirimi = 0 And ParaAltBirimi > 0 Then
YAZIYACEVIR = "Yalnız " & Cevir(ParaAltBirimi) & " YKr."

If Para_Tutar < 0 And ParaAltBirimi > 0 Then
YAZIYACEVIR = "Yalnız Eksi (-) " & Cevir(ParaAltBirimi) & " YKr."

End If

End If

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





Not:Kodlar alıntıdır.



.

yazdığınız işlemleri birebir uyguladım ama sonuç elde edemedim yanlış veya eksik yaptığım birşey var ama çözemedim daha öncede hiç makro kullanmadım yardımcı olabilir misiniz?
 
Geri
Üst