1 sayfadan 1. sayfa

Metin Kutusu ile filtreleme

İletiTarih: 04 Kas 2020, 12:01
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

İletiTarih: 06 Kas 2020, 09:20
Hamurcu
Merhaba,

Bu isteğini hiç makro yazmadan Standart Süzgeç ile halledebilirsin.

standard suzgec.png
suzgec
standard suzgec.png (28.78 KiB) 883 defa görüntülendi

Re: Metin Kutusu ile filtreleme

İletiTarih: 06 Kas 2020, 09:42
nadir
Onu denedim aslında.. Ama daha pratik olması bakımından makro ile istemiştim.

Re: Metin Kutusu ile filtreleme

İletiTarih: 06 Kas 2020, 10:28
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

İletiTarih: 06 Kas 2020, 11:34
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

İletiTarih: 06 Kas 2020, 16:47
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

İletiTarih: 09 Kas 2020, 09:04
nadir
Sayın Hamurcu, Change olayına yazabilir miyiz. Google tarzı, ararken (yazarken) listelesin.

Re: Metin Kutusu ile filtreleme

İletiTarih: 10 Kas 2020, 15:45
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.