Excel'de veriler değiştiğinde otomatik filtreyi otomatik olarak nasıl yeniden uygulayabilirim?
Excel'de, filtre verileri filtrelemek için işlev görürseniz, filtre sonucu, filtrelenmiş verilerinizdeki veri değişiklikleri ile otomatik olarak değiştirilmez. Örneğin, tüm Elmaları verilerden filtrelediğimde, şimdi, filtrelenmiş verilerden birini BBBBBB olarak değiştiriyorum, ancak sonuç aşağıdaki gösterilen ekran görüntüsü kadar değişmeyecek. Bu makalede, Excel'de veri değiştiğinde otomatik filtrenin otomatik olarak nasıl yeniden uygulanacağından bahsedeceğim.
VBA kodu ile veri değiştiğinde otomatik filtreyi otomatik olarak yeniden uygulayın
Normalde, filtre verilerini manuel olarak Yeniden Uygula özelliğini tıklayarak yenileyebilirsiniz, ancak burada, veri değiştiğinde filtre verilerini otomatik olarak yenilemeniz için bir VBA kodu sunacağım, lütfen aşağıdaki işlemleri gerçekleştirin:
1. Veriler değiştiğinde filtreyi otomatik olarak yenilemek istediğiniz çalışma sayfasına gidin.
2. Sayfa sekmesine sağ tıklayın ve Kodu Görüntüle bağlam menüsünden, açılır pencerede Uygulamalar için Microsoft Visual Basic penceresi, lütfen aşağıdaki kodu boş Modül penceresine kopyalayıp yapıştırın, ekran görüntüsüne bakın:
VBA kodu: Veriler değiştiğinde filtreyi otomatik olarak yeniden uygulayın:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub
not: Yukarıdaki kodda, Sac 3 kullandığınız otomatik filtreli sayfanın adıdır, lütfen ihtiyacınıza göre değiştirin.
3. Ve şimdi bu kod penceresini kaydedip kapatın, şimdi, filtrelenmiş verileri değiştirdiğinizde, filtre işlev bir kerede otomatik olarak yenilenecek, ekran görüntüsüne bakın:
En İyi Ofis Üretkenliği Araçları
Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır
Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
Bu yorum sitedeki moderatör tarafından en aza indirildi
II, diğer birden çok sayfanın otomatik filtrelenmesine neden olmak için bir sayfada bir değişiklik istiyorum, bu kodu nasıl değiştirebilirim? Ör: SheetA değiştirilir, bu da Sheet1, Sheet2 ve Sheet3'ün otomatik filtresini uygulamasına neden olur. Teşekkürler!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunu, hücre =sayfa1!E6 olarak ayarlanmışsa, ön sayfa için yapıyorum. Değiştiğinde filtre uygulamayacaktır. Arka sayfadaki numarayı değiştirdiğimde ön tarafı ayarlıyor ama filtreleme yapmıyor. Formülü, kriterleri filtrelemek için ayarlarsanız, yeniden uygulanır. Ne yapabilirim?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunun benim için çalışmasını hiç sağlayamıyorum. Bir ana sayfadan almaya çalışıyorum ve yalnızca adlarıyla birlikte her sekmede belirli proje yöneticileri için geçerli olan işleri almasını sağlıyorum. Ayrıca değişiklik yaptığımda otomatik olarak yenilenmesini istiyorum.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu çözüm mükemmel çalışıyor. Yazdığın için teşekkürler! Herhangi biri sorun yaşıyorsa, dikkate alınması gereken birkaç şey vardır.
İlk olarak, Worksheet_Change olayı sayfa sayfa çağrılır. Bu, güncellenmesi gereken filtrelere sahip birden fazla sayfanız varsa, tüm bu olaylara yanıt vermeniz gerekeceği anlamına gelir. Her çalışma sayfası için bir Worksheet_Change alt yordamı, tüm çalışma kitabı için tek bir alt yordam değil (bir istisna - aşağıdaki nota bakın).
İkincisi ve birincisinin devamı olan kod, izlenecek çalışma sayfasına özel kod modülüne yerleştirilmelidir. VB editörüne girdikten sonra kod modüllerini (yanlışlıkla) değiştirmek kolaydır, bu nedenle veri değişikliklerini izlemek istediğiniz sayfaya özel olarak yerleştirmeye özen gösterilmelidir.
Üçüncüsü, bu doğrulanmamıştır, ancak muhtemelen bir hata noktasıdır. Örnek, "Sayfa1", "Sayfa2" vb. sayfa adlarını kullanır. Sayfaları yeniden adlandırdıysanız, kodu güncellemeniz gerekebilir. Örnekte, Sheet7'ye "dfdf" adı verildiğine dikkat edin. Oradaki filtreyi güncellemek isterseniz;
Sheets("dfdf").AutoFilter.ApplyFilter
değil;
Sayfalar("Sayfa7").AutoFilter.ApplyFilter
Yeniden adlandırılmış bir sayfa içeren bir örnek içeren makaleyi güncellemek iyi olabilir.
Son olarak, veri değişiklikleri için bir sayfayı izlemek, ancak birden çok sayfadaki filtreleri güncellemek istiyorsanız, o zaman izlemekte olduğunuz çalışma sayfasının kod modülüne yerleştirilmiş yalnızca bir alt programa ihtiyacınız vardır. Kod şöyle görünecek;
# (veri değişiklikleri için izlenecek kod çalışma sayfasına yerleştirilmelidir)
Özel Alt Çalışma Alanı_Değiştir (ByVal Target As Range)
Sayfalar("Sayfa1").AutoFilter.ApplyFilter
Sayfalar("Sayfa2").AutoFilter.ApplyFilter
Sayfalar("Sayfa3").AutoFilter.ApplyFilter
Sayfalar("Sayfa4").AutoFilter.ApplyFilter
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, bu harika çalışıyor, ancak yalnızca tablodaki verileri manuel olarak değiştirirken.
Ayrı bir çalışma sayfasındaki veri girişinden doldurulan 'ilk on/lider kurulu' stili filtrelenmiş bir tablom var (aslında veriler tabloya gelmeden önce 3 çalışma sayfasından geçer). Veri girişi çalışma sayfasındaki veriler değiştirildiğinde, lider panosu tablo rakamları güncellenir ancak filtre otomatik olarak yenilenmez.
Bunun nasıl yapılacağına dair bir fikriniz var mı?
Çok minnettarım.
Alex
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aynı sorunu yaşıyorum. Sayfa 2'den gelen verileri içeren sayfa 1'yi otomatik filtrelemeye çalışıyorum. Bu, yalnızca sayfa 2'deki değil, sayfa 1'deki verileri değiştirirsem çalışır.
Bunun neden çalışmadığı ve nasıl düzeltileceği hakkında bir fikriniz var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, bu harika çalışıyor gibi görünüyor ama aynı çalışma sayfasında (sekme) birden fazla filtre olduğunda sorun yaşıyorum. Aynı çalışma sayfasında ayrı ve birden çok filtreye izin vermek için hücre aralığını bir tabloya dönüştürdüm. Bu örnek yalnızca tablolardan/filtrelerden birini güncellemek için görünür. Bir çalışma sayfasındaki TÜM tabloları/filtreleri nasıl güncelleyeceğinize dair herhangi bir öneriniz var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,
Bu kod harika çalışıyor, çok teşekkürler.
Bununla birlikte, bununla ilgili küçük bir sorunum var - tablonun parçası olmayan herhangi bir hücredeki değerleri değiştirirsem, Runtime hatasıyla karşılaşıyorum:
"Çalışma zamanı hatası '91':
Nesne değişkeni veya Blok değişkeni ayarlanmamış"
Hata Ayıklama veya Bitirme seçeneklerim var, Devam etme seçeneği gri görünüyor. "Son"a tıklayabilirim ve kod hala çalışır, ancak her değişiklikten sonra bu açılır pencereyle uğraşmak çok can sıkıcıdır.
Bunun nasıl sıralanacağı konusunda benzer bir deneyimi veya önerisi olan var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, yardımın için çok teşekkürler. Bir şey benim için doğru çalışmıyor. İşte hikaye.
Sayfa1 değişken verilere sahiptir. Sayfa3 statik veri ve filtreye sahiptir. "Sayfa3" üzerindeki filtre kriterleri, Sayfa1'den gelir. Sayfa1, Sayfa3'teki filtrelenmiş sonuçlardan gelen verilere sahiptir.
Sayfa3'ün kodu var:
Özel Alt Çalışma Sayfası_SelectionChange (ByVal Target As Range)
Range("A1:U14").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("A22:U23"), CopyToRange:=Range("A25:U26"), Unique:=False
End Sub
Sayfa3'te bir şey yaparsam harika çalışıyor. Sorun yok. Teşekkür ederim!
İlk başta Sayfa1'de kodum vardı:
Özel Alt Çalışma Alanı_Değiştir (ByVal Target As Range)
Sayfalar("Sayfa3").AutoFilter.ApplyFilter
End Sub
Bu, "Çalışma zamanı hatası 91, Nesne Değişkeni veya Blok Ayarlanmadı" hatasıyla sonuçlandı.
Kodu, yorumlara göre şu şekilde değiştirdim:
Özel Alt Çalışma Alanı_Değiştir (ByVal Target As Range)
On Error Resume Next
Sayfalar("Sayfa3").AutoFilter.ApplyFilter
End Sub
Şimdi bir hata almıyorum, ancak Sayfa3'teki ve dolayısıyla Sayfa1'deki veriler değişmiyor. Yani Sayfa3'de değişiklik yaptığımda Sayfa1'e filtre uygulama olayı olmuyor. vursam da fark etmez veya Sayfa3'de ayarlanan Sayfa1 filtre ölçütü hücresini değiştirdikten sonra başka bir hücreye tıklayın.
Bir kenara, Sayfa1'de Sayfa4'e ek olarak Sayfa 5 ve 3'te filtrelere neden olan birden fazla hücreye sahip olmak istersem, Sayfa 1'deki kodu okumak için ihtiyacım olacağını umuyorum:
Özel Alt Çalışma Alanı_Değiştir (ByVal Target As Range)
On Error Resume Next
Sayfalar("Sayfa3").AutoFilter.ApplyFilter
Sayfalar("Sayfa4").AutoFilter.ApplyFilter
Sayfalar("Sayfa5").AutoFilter.ApplyFilter
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,
Bu harika bir kod, teşekkür ederim. Karşılaştığım tek sorun, ayrı bir grafik sayfasında bir açılır menü kullanmam. Açılır menüyle ilişkili hücredeki değeri manuel olarak değiştirirsem çalışır. Ancak açılır menüyü kullanmaya çalıştığımda güncellenmiyor. Düşüncesi olan var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aslında "Veritabanı" adında bir Excel Sayfasına aktarılan başka bir Excel dosyasından verilerim var. Sonra bu verileri aynı Excel dosyasına ancak başka bir ExcelSheet "Genel Bakış" içine alıyorum. Orijinal kaynaktaki veriler değiştiğinde, filtrenin "Genel Bakış" sayfasında uygulanmasını istiyorum. Bana yardım edebilecek kişiye şimdiden teşekkür ederim :). PS, ilk excel sayfasında VBA'yı kullanamaz