EXCELDe FORMÜL HATASI

Kodla Büyü

mebbis

Seçkin Üye
Seçkin Üye
Mesajlar
757
:!: :?: arkadaşlar excel 2003 te kullandığım aşağıdaki formül Excell 2007 ve 2010 sürümlerinde çalışmıyor. yerine kullanılacak yeni bir formül yada başka bir çözüm varmı.

2003 teki formül şu =yaziyla(A1) bunu yazınca A1 deki 1923 sayısını bindokuzyüzyirmiüç yapıyor.

2007-2010 ad ise hata veriyor aynı formül ve çalışmıyor.
Acil Çözüm
 
o eklenti dosyası
 

Ekli dosyalar

  • YAZIYLA.rar
    99.3 KB · Görüntüleme: 63
  • YAZIYLA.rar
    99.3 KB · Görüntüleme: 86
hocam o yazdığınız şey bir makrodur. excel içerisinde o şekilde bir formül yok. makroyu excel 2007 ye almanız lazım
 
Peki Arkadaşlar bu makroyu tek bir belgede değildi bundan sonra açacağım yeni excel 2010 lardada aktif olmasını sağlamam mümkünmü
 
Function yaz$(sayi)
Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v(15)
Dim c(3)

b$(0) = ""
b$(1) = "Bir"
b$(2) = "İki"
b$(3) = "Üç"
b$(4) = "Dört"
b$(5) = "Beş"
b$(6) = "Altı"
b$(7) = "Yedi"
b$(8) = "Sekiz"
b$(9) = "Dokuz"

y$(0) = ""
y$(1) = "On"
y$(2) = "Yirmi"
y$(3) = "Otuz"
y$(4) = "Kırk"
y$(5) = "Elli"
y$(6) = "Altmış"
y$(7) = "Yetmiş"
y$(8) = "Seksen"
y$(9) = "Doksan"

m$(0) = "Trilyon"
m$(1) = "Milyar"
m$(2) = "Milyon"
m$(3) = "Bin"
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

s$ = ""
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$ = "BirBin") Then e$ = "Bin"
s$ = s$ + e$
Next x

If s$ = "" Then s$ = "Sıfır"
If pozitif = 0 Then s$ = "Eksi" + s$

yaz$ = s$
GoTo tamam
hata: yaz$ = "Hata"
tamam:
End Function
 
Geri
Üst