[Yardım]  KODU NASIL ÇALIŞTIRABİLİRİM

Excel sayfalarında kullandığımız yerleşik fonksiyonlar ya da kendi yazabileceğiniz fonksiyonlar ile ilgili bilmek istedikleriniz, sorunlar ve çözümleri

KODU NASIL ÇALIŞTIRABİLİRİM

İleti#1)  softdevil » 03 Ağu 2017 15:32

Selamlar Herkese;

Küçük bir sorunum var acaba yardımcı olabilir misiniz? Sorun aşağıdaki kod çalışmıyor neresinde hata olabilir ve nasıl düzeltebilirim acaba??
araştırırken bu kodu youtubeda buldum adam videoda çalıştırdı ama ben beceremedim :(

Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v(15)
Dim c(3)

Function yaz$(sayi)

b$(0) = “”
b$(1) = “bir”
b$(2) = “iki”
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
Kullanıcı avatarı
softdevil
Yeni Başlamış
 
Adı Soyadı:umut orhan
Kayıt: 15 Nis 2011 15:30
Konum: KAYASERİ
Meslek: ÖZEL SEKTÖR
Yaş: 38
İleti: 34
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: kayseri

Cevap: KODU NASIL ÇALIŞTIRABİLİRİM

İleti#2)  OrkmesB » 03 Ağu 2017 15:44


Test etmedim ama " işaretlerinde ve - işaretinde problem var görünüyor.
BUnları düzeltip, herhangi bir hücreye =YAZ(A1) şeklinde yazabilirsiniz.

Sayıyı yazıya çevirmek istiyorsanız, burayı inceleyebilirsiniz.
“Benim yaradılışımda fevkâlade olan bir şey varsa, Türk olarak dünyaya gelmemdir"
Kullanıcı avatarı
OrkmesB
Yönetim Kurulu
 


 
Adı Soyadı:Bahadır Örkmes
Kayıt: 14 Haz 2008 20:26
Konum: Gökçeali
Meslek: Personel Müdürü
Yaş: 40
İleti: 5010
 

Cevap: KODU NASIL ÇALIŞTIRABİLİRİM

İleti#3)  softdevil » 03 Ağu 2017 16:05

İlginiz için çok teşekkür ederim.

Dediklerinizi yaptım.
Kodun;
"If Left$(a$, 1) = ” ” Then pozitif = 1 Else pozitif = 0"
"a$ = Right$(a$, Len(a$) - 1)"
"a$ = String(15 - Len(a$), “0”) + a$"
bu 3 satırı kırmızı renkteydi, yani hata veriyodu. ilk satırda eşittirden sonraki tırnak işaretlerini silerek tekrar yazdım hata vermedi diğer iki satırdaki - işaretlerini de silerek tekrar yazdım ve kaydettim. Ancak bu sefer =yaz(hücre) şeklinde yazdığımda formül sonucu #değer hatası veriyor :(
Kullanıcı avatarı
softdevil
Yeni Başlamış
 
Adı Soyadı:umut orhan
Kayıt: 15 Nis 2011 15:30
Konum: KAYASERİ
Meslek: ÖZEL SEKTÖR
Yaş: 38
İleti: 34
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: kayseri

Cevap: KODU NASIL ÇALIŞTIRABİLİRİM

İleti#4)  OrkmesB » 03 Ağu 2017 16:22


Umut bey şu an için dosyaya bakma şansım yok.
Eğer amacınız sayıyı metne çevirmek ise verdiğim linkteki dosya ile çözebilirsniz.
Ama "ben bunu hırs yaptım" :) derseniz müsait anımda bakabilirim ancak.
“Benim yaradılışımda fevkâlade olan bir şey varsa, Türk olarak dünyaya gelmemdir"
Kullanıcı avatarı
OrkmesB
Yönetim Kurulu
 


 
Adı Soyadı:Bahadır Örkmes
Kayıt: 14 Haz 2008 20:26
Konum: Gökçeali
Meslek: Personel Müdürü
Yaş: 40
İleti: 5010
 

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: KODU NASIL ÇALIŞTIRABİLİRİM

İleti#5)  AhmetRasim » 03 Ağu 2017 20:34

Merhabalar;
Bahadır Bey'in dediği gibi tırnak ( “” ) ve eksi ( - ) işaretinden kaynaklanıyor sorun.
Tırnakları ve eksi işaretlerini değiştirince çalışıyor.
Kod: Tümünü seç
Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v(15)
Dim c(3)

Function yaz$(sayi)

b$(0) = ""
b$(1) = "bir"
b$(2) = "iki"
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
Kullanıcı avatarı
AhmetRasim
Site Dostu
 
Adı Soyadı:Ahmet Rasim
Kayıt: 20 Kas 2013 23:40
Konum: İstanbul
Meslek: Serbest
Yaş: 32
İleti: 1057
 
Cinsiyet: Bay


Forum Kullanıcı Tanımlı Fonksiyonlar ( KTF )

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 2 misafir

Bumerang - Yazarkafe