• DİKKAT

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

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
 
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.
 
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)
 
Dosyanızı paylaşın bizde deneyelim.
 
Aynı Kod başka dosyamda çalışıyor :)



bu USD olanı ama TL olanıda çalışıyor sorun yok
 
bari yazdığınız formülü paylaşın da onu görelim. :)
 
Merhabalar,
Dosyanız bende çalışıyor.
 

Ekli dosyalar

  • fatura.jpg
    fatura.jpg
    213.1 KB · Görüntüleme: 4
  • FATURA.xlsm
    FATURA.xlsm
    16.9 KB · Görüntüleme: 6
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
 
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
 
Geri
Üst