Otomatik süze bağlı makro

Katılım
17 Eylül 2006
Mesajlar
119
Excel Vers. ve Dili
Excel 2003 Türkçe
Otomatik süz ile süzme işlemi yaptıktan sonra D11 hücresine, süzülen değerlerin en sonuncusunu yazdırmak istiyorum ama başarılı olamadım. Yardımcı olursanız sevinirim.

Private Sub Autofilter_activate()
[D11] = [CN65536].End(3).Value
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Autofilter özelliğine göre çalışan bir olay yoktur, ancak bir çözüm bulunabilir, bunun için bir örnek dosya eklermisiniz.
 
Katılım
17 Eylül 2006
Mesajlar
119
Excel Vers. ve Dili
Excel 2003 Türkçe
İlginizden dolayı teşekkürederim. Örnek dosyam ekte, açıklamaları dosya içine yazdım.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ulaşılamayacak bir hücreye (örneğin FS1) aşağıdaki formülü kopyalayın.

=ALTTOPLAM(3;$CN$56:$CN$65536)

ANA SAYFA isimli sayfanın kod sayfasınada aşağıdaki kodu kopyalayın.

Private Sub Worksheet_Calculate()
[d11] = [cn65536].End(3)
End Sub
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Sn leventm
Arkadaşın sorusu için uğraşırken aşağıdaki fonksiyonu yazdım, ama formül çubuğuna girip, onaylamdıkça yeni değer üretmiyor. Bu fonksiyonu daha geliştirebilirmiyiz.

Function Criteria1bul()


Dim f As Filter
Dim w As Worksheet

Set w = Worksheets("ANA SAYFA")
For Each f In w.AutoFilter.Filters
If f.On Then
c1 = Mid(f.Criteria1, 2)
End If
Next
Criteria1bul = c1
End Function
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sn omerceri

Biliyorsunuz bazı fonksiyonlar dışarıdan bir etki ile tetiklenmedikleri sürece sadece bir değer gösterirler, örneğin, ŞİMDİ(), BUGÜN() fonksiyonları gibi. Sizin yazdığınızda böyle bir fonksiyon. Yani tetiklenmeye ihtiyacı var. Bunuda autofiler işlemi yapıldığında oluşacak bir değişime bağlamalısınız. Ben fonksiyonunuzun içine bir ALTTOPLAM fonksiyonu ilave ettim. Kullanım şekli aşağıdaki gibi olmalıdır.

=Criteria1bul(CN5:CN65536)

Kod:
Function Criteria1bul(kriter As Range)
Dim f As Filter
Dim w As Worksheet
say = WorksheetFunction.Subtotal(3, kriter)
Set w = Worksheets("ANA SAYFA")
For Each f In w.AutoFilter.Filters
If f.On Then
c1 = Mid(f.Criteria1, 2)
End If
Next
Criteria1bul = c1
End Function
 
Üst