Bir çoğunuz excele dışarıdan aldığı verileri refresh (yenileme) etmede sorunlar yaşamıştır. Bende bu anlamda çok sorunlar yaşadım. Burada bahsi geçen sorun dış verinin olduğu sayfa select olmadan veriyi yenilemek.
Sub yenile() Sheets("Sayfa2").Select Range("A1").Select Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False End Sub
Yukarıda ki kod dış verinin olduğu sayfayı select ederek veriyi yeniler. O an üzerinde çalıştığınız sayfadan ayrılmak istemeyebilirsiniz. Akla ilk gelen çözüm veri yenilendikten sonra çalışmak istenilen sayfanın tekrar select edilmesi olsa da, bu durum bazı zamanlar başınızı ağrıtabilir.
Sub yenile() Sheets("Sayfa2").Select Range("A1").Select Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False Sheets("Sayfa1").Select End Sub
Örneğin yukarıda ki gibi bir kod yazmak Sayfa1’in Activate Event’ına olası yazılan kodlar yüzünden sonsuz döngü oluşturacaktır. İşte tam bu noktada problem ortaya çıkmaktadır. Bunun çözümü ise aşağıda ki gibi bir kod yazmak olacaktır.
Sub yenile() ActiveWorkbook.Connections("CONNECTION_NAME").Refresh End Sub
Bu kod, hangi sayfa da olursak olalım dış bağlantının yapıldığı sayfa select edilmeden arka planda o veriyi yenileyecektir. Burada “CONNECTION_NAME”, dış veriyi aldığınız tablonun bağlantı adıdır. Bunu nasıl elde edeceğinizi aşağıda ki videoyu izleyerek öğrenebilirsiniz.
Kolay gele….