• DİKKAT

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

Eklenen kod hatalı mı?

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,908
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Merhaba Arkadaşlar,
Aşağıdaki kod, BY1 ve CA1 de değişiklik olduğunda Makro1 'i çağırmak için yeterli değil mi?
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Intersect(Target, [BY1, CA1]) Is Nothing Then Exit Sub
    Call Makro1
End Sub
Alternatifi ne olabilir?
Saygılarımla
 
Çalışıyorsa sorun yok, daha ne olsun? :)

Genel amaçlı olarak kodu yazmışsınız zaten.

Olsa olsa biraz kısaltılabilinir ama bana göre gerek bile yok.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [BY1,Ca1]) Then Makro1
End Sub
 
Merhaba Necdet Hocam,
Hazırladığım bir çalışmada aynen bu haliyle çalışıyor. Başka bir çalışmada ise israrla Makro1 'i çağırmıyor. Bunun nedenini arıyorum. Ne yapabilirim acaba.
Saygılarımla
 
O dosyada makro1 var mı?

O dosyada sayfa olayları aktif edilmiş mi? Bir sebeple o dosyada sayfa olayları pasifleşmiş olabilir. Örneğin herhangi bir sayfa olayı makrosunda Application.EnableEvents=False satırı varsa bu satır sayfa olaylarını pasifler. Daha sonra Application.EnableEvents=True satırıyla tekrar aktifleştirilir. Bu şekilde pasiflenmiş bir kod pasiflemeden sonra hata verip durursa aktifleşme satırına gelmediği için pasif olarak kalmaya devam eder. Tekrar pasiflemek için aşağıdaki kodları o sayfada iken bir defaya mahsus çalıştırabilirsiniz:

Kod:
sub aktif()
Application.EnableEvents=True
End sub

Bundan başka bir sorun varsa bilemiyorum.
 
Sayın Hocalarım,
Benim yazdığımda Makro1, ancak manuel olarak çağrılabiliyor. Necdet Hocamın satırını yazdığımda
Run-time error '91':
Object variable or With block variable not set

şeklinde hata verdi
Saygılarımla
 
Belki de Makro1'in modülde olması gerekiyordur ama başka dosyada modulde değil de sayfadadır. (Tamamen tahmin)
 
Geri
Üst