süzme işleminde hata

Katılım
4 Aralık 2005
Mesajlar
56
Merhaba,
Ekteki dosyada sayfa1 deki comboboxtan tarih seçiyorum,seçtiğim veri sel.filtre sheetinde k2 hücresine kopyalanıyor. Formatını düzeltmek için k3=k2*1 diyorum. Bundan sonra a1:m1 aralığında filtre uygulayarak K3 değerine göre filtreleme yapsın diyorum. Fakat 12.12.2005 tarihi dışındaki hiç bir veriye filtreleme yapmıyor. Çok uğraştım ama başaramadım. Filtrenin custom'ına baktığımda tarih formatlarını aa.gg.yyyy olarak alıyor sanırım. O yüzden sadece 12.12.05 e filtre yapıyor. Dosya ekte, bilen arkadaşlardan çok acil yardım lütfen. Farklı bir öneriniz varsa o da olur.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Comboboxın linkedcell özelliğine yazdığınız hücre adını silin ve comboboxa aşağıdaki kodu yazın. K2 hücresinide tarih olarak biçimlendirin.

[vb:1:f2672ea23d]Private Sub ComboBox1_Click()
ComboBox1 = Format(ComboBox1, "dd.mm.yyyy")
[sel.filtre!k2] = CLng(CDate(ComboBox1))
End Sub
[/vb:1:f2672ea23d]
 
Katılım
4 Aralık 2005
Mesajlar
56
Sayın Leventm öncelikle çok teşekkür ederim.Ama dediğiniz kodları yazmama rağmen süz işlemi bu seferde selectionfilter satırında debug veriyor. verdiğiniz kodları yazdım dosya ekte. Sel.filtre sheetnde filtre makrosunu çaliştırıyorum. İnceleyip geri dönme vaktiniz olursa çok sevinirim.
Bu arada kayıt sil ve güncelle kodlarını yerleştirdim sorun yok.Yalnız bu konuyu öğrenmek istediğim için bir şey sormak istiyorum.Aşağıdaki On Error Goto 10 satırının görevi tam olarak nedir?kendi yazdığım kodlarda kullanabilirim belki.

Private Sub CommandButton1_Click()
On Error GoTo 10
Sheets("sayfa1").Rows([sayfa1!c1:c65536].Find([e2]).Row).Delete
MsgBox "SİLME İÞLEMİ TAMAMLANDI"
Exit Sub
10 MsgBox "VERİ BULUNAMADI"
End Sub
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Modüldeki kodları silin

ComboBox1'in ListFillRange bilgilerini Sayfa1'den alsın

kodları aşağıdaki şekilde değiştirin

Private Sub ComboBox1_Click()
ComboBox1 = Format(ComboBox1, "dd.mm.yyyy")
[sel.filtre!k2] = CLng(CDate(ComboBox1))
Sheets("sel.filtre").Select
Sheets("sel.filtre").Range("A1").AutoFilter Field:=1, Criteria1:=Day(Sheets("sel.filtre").Range("k2")) & "/" & Month(Sheets("sel.filtre").Range("k2")) & "/" & Year(Sheets("sel.filtre").Range("k2"))
End Sub
 
Katılım
17 Mart 2005
Mesajlar
32
Autofilter işlemi VBA'da oldukça sorunludur. Fakat bu sorunu;
Büyük için
Criteria1:>CLng(CDate(ComboBox1))

Küçük için
Criteria1:<CLng(CDate(ComboBox1))

Eşit için
Criteria1:>= CLng(CDate(ComboBox1)), Criteria2<=CLng(CDate(ComboBox1))

(Bu biraz pratik çözümü oluyor ama neyapalım :) Eşitliğin anlamı"<=" ile ">=" kesişim kümesi "=" olmasıdır.

"10" bir etiket görevidedir. oraya 10 yerine istediğin herhangi bir şey yazabilirsin. ve o blogu o isimle çağırabilirsin.
mesela
Kod:
Goto ekle

....


ekle:
sheets.add
 
Katılım
4 Aralık 2005
Mesajlar
56
Sayın omerceri'nin kodları sorunsuz çalıştı,sayın ibayarslan'ada verdiği bilgilerden dolayı teşekkür ederim. Bu sitedekiler olmasa günlerce sabaha kadar uğraşır dururdum.Ya da yapmak istediğimi 4-5 satır kod yerine en az 20-30 satırlık kodlarla çözebilirdim:)Tekrar teşekkürler
 
Katılım
6 Şubat 2005
Mesajlar
1,467
sn ibayarslan
örnek verdiğiniz kod;
Criteria1:<CLng(CDate(ComboBox1))
yazılınca hata veriyor. (yazım hatası)
Criteria1:= "<" & CLng(CDate(ComboBox1))
şeklinde yazılınca hata vermiyor
bugünlerde tarih süzdürmeye taktım da
 
Üst