Yazıya Cevir Hatası (#AD?)

Katılım
10 Temmuz 2020
Mesajlar
33
Excel Vers. ve Dili
2010 - Türkçe
Merhaba Arkadaşlar Aşağıda Kullandığım Kodu verdim
bu kod bir dosyamda çalışıyor ilginç olanı ise o dosyamı başka bir yere kopyaladığımda
(#AD?) hatası alıyorum bir türlü çözüm üretemedim
yardımcı olursanız sevinirim




Function yaziyacevir(rakam)
Dim grup(5), sayi(10, 3), basamak(5), oku(3)
sayi(0, 1) = "": sayi(0, 2) = "": sayi(0, 3) = ""
sayi(1, 1) = "YÜZ": sayi(1, 2) = "ON": sayi(1, 3) = "BİR"
sayi(2, 1) = "İKİYÜZ": sayi(2, 2) = "YİRMİ": sayi(2, 3) = "İKİ"
sayi(3, 1) = "ÜÇYÜZ": sayi(3, 2) = "OTUZ": sayi(3, 3) = "ÜÇ"
sayi(4, 1) = "DÖRTYÜZ": sayi(4, 2) = "KIRK": sayi(4, 3) = "DÖRT"
sayi(5, 1) = "BEŞYÜZ": sayi(5, 2) = "ELLİ": sayi(5, 3) = "BEŞ"
sayi(6, 1) = "ALTIYÜZ": sayi(6, 2) = "ALTMIŞ": sayi(6, 3) = "ALTI"
sayi(7, 1) = "YEDİYÜZ": sayi(7, 2) = "YETMİŞ": sayi(7, 3) = "YEDİ"
sayi(8, 1) = "SEKİZYÜZ": sayi(8, 2) = "SEKSEN": sayi(8, 3) = "SEKİZ"
sayi(9, 1) = "DOKUZYÜZ": sayi(9, 2) = "DOKSAN": sayi(9, 3) = "DOKUZ"
basamak(5) = "TRİLYON"
basamak(4) = "MİLYAR"
basamak(3) = "MİLYON"
basamak(2) = "BİN"
basamak(1) = ""
lira = Int(rakam)
kurus = Round(rakam - lira, 2) * 100
If Len(lira) > 15 Then
MsgBox ("Bu fonksiyon en fazla 15 haneli sayılar için çalışır.")
End
End If
kalan = lira
yaziyacevir = ""

For x = 1 To 5
a = 15 - 3 * x
If Len(lira) > a Then
grup(6 - x) = Int(kalan / 10 ^ a)
kalan = kalan - (grup(6 - x) * 10 ^ a)
End If

Next x

If grup(5) > 0 Then
oku(1) = Int(grup(5) / 100)
baskalan = grup(5) - oku(1) * 100
oku(2) = Int(baskalan / 10)
oku(3) = baskalan - oku(2) * 10
yaziyacevir = sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(5)
End If

If grup(4) > 0 Then
oku(1) = Int(grup(4) / 100)
baskalan = grup(4) - oku(1) * 100
oku(2) = Int(baskalan / 10)
oku(3) = baskalan - oku(2) * 10
yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(4)
End If

If grup(3) > 0 Then
oku(1) = Int(grup(3) / 100)
baskalan = grup(3) - oku(1) * 100
oku(2) = Int(baskalan / 10)
oku(3) = baskalan - oku(2) * 10
yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(3)
End If

If grup(2) = 1 Then
yaziyacevir = yaziyacevir + "BİN"
End If

If grup(2) > 1 Then
oku(1) = Int(grup(2) / 100)
baskalan = grup(2) - oku(1) * 100
oku(2) = Int(baskalan / 10)
oku(3) = baskalan - oku(2) * 10
yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(2)
End If

If grup(1) > 0 Then
oku(1) = Int(grup(1) / 100)
baskalan = grup(1) - oku(1) * 100
oku(2) = Int(baskalan / 10)
oku(3) = baskalan - oku(2) * 10
yaziyacevir = yaziyacevir + sayi(oku(1), 1) + sayi(oku(2), 2) + sayi(oku(3), 3) + basamak(1)
End If
yaziyacevir = yaziyacevir + " TL."
If kurus > 0 Then
oku(2) = 0
If Len(kurus) > 1 Then
oku(2) = Int(kurus / 10)
End If
oku(3) = kurus - oku(2) * 10
yaziyacevir = yaziyacevir + sayi(oku(2), 2) + sayi(oku(3), 3) + " KR."
End If
End Function
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Excel sayfasında formül adını doğru yazdığınızdan emin olun.

=yaziyacevir(123) yazmalısınız
=yazıyaçevir(123) hata verir

Yada kodları bir modüle değilde sayfanın kod kısmına kopyalamış olabilirsiniz.
 

byfika

Altın Üye
Altın Üye
Katılım
15 Ağustos 2009
Mesajlar
499
Excel Vers. ve Dili
Excel Vers. ve Dili : Ofis 2016 Tr
Altın Üyelik Bitiş Tarihi
13.09.2027
Merhabalar
örnek olarak C2 hücresine:
=yaziyacevir(A2) yazın,

A2 hücresinede rakamı yazarsanız sonucu C2 de yazı olarak alırsınız. ( hücreleri kendi dosyanıza göre ayarlarsınız)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,256
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dosyanızı paylaşın bizde deneyelim.
 
Katılım
10 Temmuz 2020
Mesajlar
33
Excel Vers. ve Dili
2010 - Türkçe
Aynı Kod başka dosyamda çalışıyor :)



bu USD olanı ama TL olanıda çalışıyor sorun yok
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
bari yazdığınız formülü paylaşın da onu görelim. :)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,256
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bende çalışıyor.

222488
 

byfika

Altın Üye
Altın Üye
Katılım
15 Ağustos 2009
Mesajlar
499
Excel Vers. ve Dili
Excel Vers. ve Dili : Ofis 2016 Tr
Altın Üyelik Bitiş Tarihi
13.09.2027
Merhabalar,
Dosyanız bende çalışıyor.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Dört tane alternatif var.

1- Makrolar etkin değil.
2- Fonksiyon kodları bir Module de değil
3- Excel sayfasında Formül adını yanlış giriyorsunuz.
4- Düzenleme etkin değil.

Dosyayı açtığınızda "Düzenlemeyi Etkinleştir" butonu varsa tıklatarak etkinleştirin.
222491
 
Katılım
10 Temmuz 2020
Mesajlar
33
Excel Vers. ve Dili
2010 - Türkçe
Dört tane alternatif var.

1- Makrolar etkin değil.
2- Fonksiyon kodları bir Module de değil
3- Excel sayfasında Formül adını yanlış giriyorsunuz.
4- Düzenleme etkin değil.

Dosyayı açtığınızda "Düzenlemeyi Etkinleştir" butonu varsa tıklatarak etkinleştirin.
Ekli dosyayı görüntüle 222491
1- Makrolar etkin değil. > Ayarlardan Tüm Makrolara Güven Secili
2 - Fonksiyon kodları bir Module de değil > Fonsiyon Modüllde ( Çalışan versiyonda USD ayrı modülde TL ayrı Modülde kullanıyorum
3- Excel sayfasında Formül adını yanlış giriyorsunuz. > Bende Onu Tahmin Ettim Direk Fonsiyonan Kopyaladım olmadı Yazmaya başlayınca öneriyor otomatik oradan da seçtim gene olmadı
4- Düzenleme etkin değ > Etkinleştirdim

hocam
 
Üst