• DİKKAT

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

Makro ile sayfanın yenilenmesi mümkün mü acaba?

mustafa

Altın Üye
Katılım
8 Eylül 2004
Mesajlar
252
Excel Vers. ve Dili
Excel 365 - Türkçe
Kod:
Private Sub Worksheet_Activate()

End Sub

Yukarıdaki kod ile sayfa aktif olunca makro çalışıyor. Fakat sayfada herhangi bir değişiklik yaptığım zaman başka bir sayfaya geçip tekrar geri gelmem lazım. Her defasında bunu yapmak sıkıntılı oluyor.

Acaba Explorer' de olduğu gibi sayfanın yenilenmesi için makro yazılabilir mi? Eğer mümkün olursa çok harika olacak. Ya da sayfada yapılacak değişikliklerin aktif olması için başka öneriniz var mı?
 
Yenilemekten kastın makronun mu çalışması lazım ?

Eğer böyle ise makroyu bir procedur(sub) gibi yaparsın. Her değişiklikte bu proceduru çağırarak sorununu çözebilirsin.

Dediğini anlamışımdır umarım.
 
quinen' Alıntı:
Yenilemekten kastın makronun mu çalışması lazım ?

Eğer böyle ise makroyu bir procedur(sub) gibi yaparsın. Her değişiklikte bu proceduru çağırarak sorununu çözebilirsin.

Dediğini anlamışımdır umarım.

Maalesef kastettiğinizi anlayamadım. Basit bir örnek verirseniz daha iyi olur.
 
Þimdi anlamışmıyım bir özetliyim. Senin bir makron var ve sayfa aktif olduğu zaman çalışıyor. Sayfada herhangi bir değişklik yapıldığında makronun tekrar çalışabilmesi için sayfayı değiştirip tekrar açıyorsun ki active methodu yani makro çalışsın diyorsun. Bunu başka yolu yok mu diye soruyorsun doğru mu ?
 
Aynı kodları sayfa modülünde change olayının altına yazarsanız sayfada her değişiklik olduğunda makro çalışır.

[vb:1:70c052f1b3]Private Sub Worksheet_Change(ByVal Target As Range)
...
End Sub[/vb:1:70c052f1b3]
 
quinen' Alıntı:
Þimdi anlamışmıyım bir özetliyim. Senin bir makron var ve sayfa aktif olduğu zaman çalışıyor. Sayfada herhangi bir değişklik yapıldığında makronun tekrar çalışabilmesi için sayfayı değiştirip tekrar açıyorsun ki active methodu yani makro çalışsın diyorsun. Bunu başka yolu yok mu diye soruyorsun doğru mu ?

Evet tam da bunu istiyorum.

danersin' Alıntı:
Aynı kodları sayfa modülünde change olayının altına yazarsanız sayfada her değişiklik olduğunda makro çalışır.

[vb:1:f552a7216f]Private Sub Worksheet_Change(ByVal Target As Range)
...
End Sub[/vb:1:f552a7216f]

Ã?nerdiğiniz kodu yazdım fakat çalışmaya başladıktan sonra bir türlü durmadı. Bir hata yaptım fakat ne olduğunu anlayamadım.
 
Merhaba

Sayfada her yapılan değişiklikte kod çalışır.

Kod'larınızı ilave edebilirmisiniz.
 
Muhtemelen kodlarınızda sayfada değişiklik yapmaya yönelik. Dolayısı ile makro sürekli olarak tetikleniyor. O zaman bir buton vasıtası ile kodu çağırmak en iyisi. Ã?bür türlü şu şu hücreler değişti ise makro çalışsın diye bir sürü kod yazmak gerekicek sayfa komplekse.
 
Sn mustafa bunun çözümü olarak makroda yazdığınız kodu bir sub a(procedure) çevirmeniz gerekiyor. Þöyle açıklayayım kodu makroyu oluşturduğunda kod sayfasına gidersen şöyle bir ifade ile karşılaşırsın

Sub Makro1()

......................

End Sub

Aslında dediğim gibi bu bir sub dır

Change olayına yazdığında Sn Ersin'in dediği gibi her değişiklikte makro çalışır.

Sana pratik bir çözüm önerebilirim. Sanırım bu geçici olarak işine yarayabilir.


Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Makro1
End Sub

Kodunu bunu içine yazabilirsin. Böylece değişkliklerini yapar sağ tuşa tıkladığın an sayfan yenilenir. Makron çalışır. Ancak bu geçici bir çözüm bu. kalıcı bir çözüm bulup tekrar döneceğim.
 
Sn quinen,

Ã?neriniz üzerine sayfadaki Private Sub Worksheet_Activate() ile başlayan tüm kodları Makro1 adı ile kaydettim. Sonra da diğer kodunuzu da aynen yazdım.

Þu an tam istediğim gibi çalışıyor. Teşekkür ederim. Fakat kalıcı çözüm dediğiniz şeyi de bekleyeceğim.

Saygılar.
 
Herkese iyi akşamlar,
Yeni bir başlık açmak istemedim. Aynı programımda banka listem var. Buraya makro ile veri aktarıyorum.

D10:D37 arası isimler
F10:F37 arası tahakkuk eden ücret
G10:G37 arası damga vergisi ve
H10:H37 arası net ele geçen

Sorum şu; yeni bir kayıt yapılırken D10:D37 arasındaki isimler kontrol edilse ve aynı isim varsa kaydedilecek değerler (tahakkuk-damga vergisi-ele geçen) onun bulunduğu satırdaki varolan değerlere eklense. Umarım çok şey istemiyorumdur.
 
Aranacak isim ve eklenecek veriler nereden alınacak hücrelerden mi yoksa bir textboxlardan mı? ayrıca isim bulunamazsa ne olacak?
 
Aranacak isim ve eklenecek veriler hücrelerden alınıyor. Eğer aynı isim yoksa verileri son ismin altındaki hücreye kaydedecek.
 
Aynı kodları sayfa modülünde change olayının altına yazarsanız sayfada her değişiklik olduğunda makro çalışır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
...
End Sub
şeklinde açıklamanıza istinaden aşağıdaki kodu sayfaya yazdım ama çalışma dı nerede yanlış yaptım acaba

Kod:
sat1 = Cells(65536, "G").End(3).Row + 1
sat2 = Cells(65536, "B").End(3).Row
For B = sat1 To sat2
If IsEmpty(Cells(B, 7).Value) = True Then        
  
        Cells(B, 8) = 0

    End If
    Next B
 
Geri
Üst