1. sayfa (Toplam 1 sayfa)

Metin Kutusu ile filtreleme

Gönderilme zamanı: 04 Kas 2020, 12:01
gönderen nadir
Sayfa üzerine eklediğim metin kutusu ile B6:C510 arasını makro ile filtrelemek istiyorum. Metin kutusuna örneğin Ali yazdığımda ALİ ile başlayanları listelesin.

Resim

Re: Metin Kutusu ile filtreleme

Gönderilme zamanı: 06 Kas 2020, 09:20
gönderen Hamurcu
Merhaba,

Bu isteğini hiç makro yazmadan Standart Süzgeç ile halledebilirsin.
suzgec
suzgec
standard suzgec.png (28.78 KiB) 4103 kere görüntülendi

Re: Metin Kutusu ile filtreleme

Gönderilme zamanı: 06 Kas 2020, 09:42
gönderen nadir
Onu denedim aslında.. Ama daha pratik olması bakımından makro ile istemiştim.

Re: Metin Kutusu ile filtreleme

Gönderilme zamanı: 06 Kas 2020, 10:28
gönderen Hamurcu
Sanırım aşağıdaki kod işini görür.

Kod: Tümünü seç

sub Filtrele()

dim Sayfa as object, FiltreMetni as object

dim FiltrelenecekBolge as object, FiltreParametreleri as object
dim FiltrelenecekSutun(0) As New com.sun.star.sheet.TableFilterField   

Sayfa = thiscomponent.sheets.getByName("Çizelge1")
FiltreMetni = Sayfa.drawPage.Forms.getByName("Form").getByName("Metin Kutusu 1")

FiltrelenecekBolge = Sayfa.getCellRangeByName("a5:c150")
FiltreParametreleri = FiltrelenecekBolge.createFilterDescriptor(true)
FiltrelenecekBolge.filter(FiltreParametreleri) 

with FiltrelenecekSutun(0)		' (0) ilk filtre parametrelerini tanimlar. Ikincisi icin (1) ve devam etmelidir.
    .Field = 1                  ' B Sutununa gore filtrelemesi icin 1 giriliyor (0-->A sutunu demek)
    .IsNumeric = false          ' Metne gore filtrelemek icin False giriliyor. Sayisal filtreleme icin True girilmeli
    .Operator = com.sun.star.sheet.FilterOperator.EQUAL
    .StringValue = ".*" & FiltreMetni.text & ".*"
end with

with FiltreParametreleri                                    
    .ContainsHeader = true                      
    .UseRegularExpressions = true
    .setFilterFields(FiltrelenecekSutun())    
end with

FiltrelenecekBolge.filter(FiltreParametreleri)

end sub

Re: Metin Kutusu ile filtreleme

Gönderilme zamanı: 06 Kas 2020, 11:34
gönderen nadir
FiltreMetni = Sayfa.drawPage.Forms.getByName("Form").getByName("Metin Kutusu 1")
...satırında
BASIC çalışma zamanı hatası "1" alıyorum.

Re: Metin Kutusu ile filtreleme

Gönderilme zamanı: 06 Kas 2020, 16:47
gönderen Hamurcu
Sayfaya koyduğun Metin Kutusunun adı farklıdır sende ondan hata alıyorsundur.

Ben standart bir metin kutusu koydum ve adı otomatik olarak "Metin Kutusu 1"

Sen bu ismi kendine göre uygun şekilde değiştirmelisin.

Re: Metin Kutusu ile filtreleme

Gönderilme zamanı: 09 Kas 2020, 09:04
gönderen nadir
Sayın Hamurcu, Change olayına yazabilir miyiz. Google tarzı, ararken (yazarken) listelesin.

Re: Metin Kutusu ile filtreleme

Gönderilme zamanı: 10 Kas 2020, 15:45
gönderen Hamurcu
Sayfadaki veriler az olduğunda sorun olmaz ama binlerce satır veri olursa her harfe bastığında yeniden hesaplayacağı için takılmalar oluşacaktır.