Autofiter - süz yardım

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
557
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
26-03-2026
İyi günler;

Çalışma kitabımın kayit(2. sayfa) datalar mevcut;

B Sutunda isim
E sutunda tarih(Ã?rnek: 01.05.2005 şeklinde kayıtlı)
bulunmaktadır.

Userform üzerinde bulunan ComboBox'a

Private Sub ComboBox2_Click()
Set s1 = Sheets("kayit")
sonsat = s1.Cells(65536, 5).End(xlUp).Row
arananay = ComboBox2.Value
s1.Range("a1:f" & sonsat).AutoFilter Field:=5, Criteria1:=">=" & CLng(CDate("1." & ComboBox2.Value & "." & Year(Date))), Operator:=xlAnd, Criteria2:="=<" & CLng(CDate("1." & ComboBox2.List(ComboBox2.ListIndex + 1) & "." & Year(Date)))
If s1.[j1] = 0 Then
MsgBox "UYGUN VERİ BULUNAMADI"
ComboBox2.SetFocus
End If
End Sub

Private Sub UserForm_Initialize()

Set s1 = Sheets("kayit")
s1.[a1:f1].AutoFilter

For a = 1 To 12
ComboBox2.AddItem Format(CDate(1 & "." & a & "." & 2005), "mmmm")
Next

End Sub
Listele butonunda da
Private Sub CommandButton2_Click()
Sheets("Rapor").Range("A2:f55000").ClearContents
s1.[a1].CurrentRegion.Copy
Sheets("Rapor").Select
[a1].PasteSpecial
Application.CutCopyMode = False
Unload Me
Sheets("Rapor").Select
ActiveWindow.SelectedSheets.PrintPreview

End Sub

makro kayıtlı,
Buna göre;
kayıtlı bulunduğu ayda kayıt bulunamadığına dair mesaj vermektedir.
Nerede yanlışlık yapmaktayım. ve nasıl olacak. Þimdiden teşekkürler.
 

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
[vb:1:b4a96e6eb3]If s1.[j1] = 0 Then
MsgBox "UYGUN VERİ BULUNAMADI"
ComboBox2.SetFocus
End If
End Sub
[/vb:1:b4a96e6eb3]

Kodlarınız içinde yer alan yukarıdaki kodu aşağıdaki ile değiştirin.

[vb:1:b4a96e6eb3]If s1.[f1] = 0 Then
MsgBox "UYGUN VERİ BULUNAMADI"
ComboBox2.SetFocus
End If
End Sub
[/vb:1:b4a96e6eb3]
 

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
557
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
26-03-2026
Sayın leventm;
J1 hücresinde alttoplam formülü vardır.

sorun j1 hücresinden kaynaklanmamaktadır.
 

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
Kodu incelediğimizde uyarı mesajını sadece J1 hücresi sıfır ise verecektir. Başka türlü mesajı vermesi mümkün görünmüyor. İsterseniz dosyanızı ekleyin birde ona bakalım.
 

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
557
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
26-03-2026
Page2'yi GELİÞMİÞ SÜZ olarak düşünürsek;
1- Kayıt sayfasında bulunan kayıtlardan,
a) E sutunda bulunan(gün olarak kayıt edilen) tarihleri, tarihleri(ay bazında( Ã?rnek : 05.02.2005 ila 28.02.2005 tarihleri arasındaki) ,
b) B sutunda bulunan isime göre(Combobox3),
c) E ve B sutunları birlikte kullanarak( Ã?rnek: Ali'nin Þubat ayına göre),
d) iki comboboxtan ayrı olarak Unvana göre,

2- İki tarih arasında( Ã?rnek: 12.02.2005 ila 28.02.2005 tarihleri arasında)kayıt olanların tamamına süzme ve rapor verecek ve de yazdıracağız gerektiğinde,
Þimdiden teşekkürler.
 

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
Dosyanızı incelediğimde kayit sayfasındaki tarihleri metin olarak kaydedildiğini bu sebeplede süzmede sorun çıkarttığını tespit ettim. Ekteki dosyada tarihleri el ile düzelttiğimde kodlar normal çalışmaya başladı. Bu sorunu tarihi sayfa üzerine aktardığınız textboxı uygun veri şekline dönüştürerek çözebilirsiniz. Ã?rneğin;

cells(1,2)=clng(cdate(textbox1.value)) şeklinde tarihi sayıya dönüştürerek hücreye aktarın. Tarih aktarılan hücrenin biçiminide Tarih olarak biçimlerseniz, hiç bir sorun çıkmayacaktır.
 

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
557
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
26-03-2026
Sayın leventm;
Cevabınız için teşekkürler. İstediğim gibi olmuş ancak, küçük bir yardımını da esirgemiyeceğin dileğimle,
Cevabınızda belirttiğiniz;
kayit sayfasındaki tarihleri metin olarak kaydedildiğini bu sebeplede süzmede sorun çıkarttığını, tarihleri el ile düzelttiğinde kodlar normal çalışmaya başladığından, tarihi sayfa üzerine aktardığınız textboxı uygun veri şekline dönüştürerek çözebileceğini, Ã?rneğin;
cells(1,5)=clng(cdate(textbox1.value)) şeklinde tarihi sayıya dönüştürerek hücreye aktarın. Tarih aktarılan hücrenin biçimini de Tarih olarak biçimlerseniz, hiç bir sorun çıkmayacaktır.

buna göre;
1- Yanlışlık olmaması için elle düzeltmede, hücre biçimlendirme - tarih *14.01.2005 olması gerekiyor?
2- cells(1,5)=clng(cdate(textbox1.value)) kodu textbox'un Change olayına kayıt ettiğimde sorum çözülecekmi?
teşekkürler
 

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
Textboxın Exit olayına yazabilirsiniz. Veya verileri bir command butonla aktarıyorsanız bu butondaki kodun içine yazın.

Tarihin "14.01.2005" şeklinde biçimlendirilmesi şart değildir.
 

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
557
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
26-03-2026
Sayın Levent;
sormak istediğim tarihleri elle nasıl yapıldığı idi orada örnek olarak vermiştim.
 

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
Tarih yazılacak hücreye 14-1 yazıp entere basarsanız, otomatikman tarih haline gelecektir. Ben her hücreyi tek tek yeniden yazdım. Eğer veri sayınız çoksa bunu makro ile yapmak daha mantıklı olacaktır.
 
Üst