• DİKKAT

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

Hata kodu 'run time error 1004'

Hata ekranında DEBUG tuşuna bastığınızda sizi hata veren satıra götürecektir. Kodlarınızı foruma eklerseniz daha sağlıklı yorum yapabiliriz.
 
Kodu ekledim. aşağıdadır.

kac = WorksheetFunction.Match(Range("E3"), Sheets("Data").Range("D1:D374"), 0)

Hata ekranında DEBUG tuşuna bastığınızda sizi hata veren satıra götürecektir. Kodlarınızı foruma eklerseniz daha sağlıklı yorum yapabiliriz.
 

Ekli dosyalar

  • hata1.jpg
    hata1.jpg
    319.7 KB · Görüntüleme: 6
Kodunuzda ilk satırlarda da aynı kod bloğu var. O bölüm hata vermiyor sanırım.

Aklıma gelen çözümler;

  1. E3 hücresi boş olabilir. Kontrol ediniz.
  2. Excel seçeneklerinden EKLENTİLER bölümünü açın. Ekrana gelen menüden "Çözücü araç takımı - VBA" seçeneğini aktif hale getirip kodu tekrar deneyi.
 
Kodu ekledim. aşağıdadır.

kac = WorksheetFunction.Match(Range("E3"), Sheets("Data").Range("D1:D374"), 0)

Korhan bey selam
e3 hucresi boş değil zira solda haftalardan seçiyoruz hangı haftayı seçersek o geliyor. diğeri ise işaretli zaten.
resim ekte.
hatta exceli de ekledim.
 

Ekli dosyalar

  • E3.jpg
    E3.jpg
    289.4 KB · Görüntüleme: 1
  • HATA2.jpg
    HATA2.jpg
    175.2 KB · Görüntüleme: 1
  • 2014-2015tahmin LİGİ.xlsm
    2014-2015tahmin LİGİ.xlsm
    72.3 KB · Görüntüleme: 2
Tıkladığınız hücredeki veri Data sayfasında "D" sütununda yoksa hata veriyor. Bu sebeple ilgili veriyi ilk olarak saydırıp sıfırdan büyükse Match fonksiyonu ile bulup sonuca gidebilirsiniz. Ya da kodlarınızın başına "On Error Resume Next" satırını ekledikten sonra hata kontrolü ekleyerek kodları yönlendirebilirsiniz.

Data sayfasında "24. Hafta" verisi "C" sütununa yazılmış. Fakat siz aratırken "D" sütununu kullanıyorsunuz.Bunlar hataya sebep oluyor. Bence en iyi yöntem saydırarak kontrol etmektir. Alternatif olarak FIND komutunuda araştırabilirsiniz.

Örnek 1; (Saydırma yöntemi)
Kod:
If WorksheetFunction.CountIf(Sheets("Data").Range("D1:D374"), Range("E3")) > 0 Then
kac = WorksheetFunction.Match(Range("E3"), Sheets("Data").Range("D1:D374"), 0)

Örnek 2; (Hata kontrolü)
Kod:
On Error Resume Next
kac = WorksheetFunction.Match(Range("E3"), Sheets("Data").Range("D1:D374"), 0)
If kac <> Empty Then
'İşlem yapan kodlarınız...
 
teşekkür ederim korhan bey,
elinize sağlık.
 
Geri
Üst