WorksheetFunction sınıfının edate özelliği alınamıyor.

Katılım
2 Mayıs 2011
Mesajlar
33
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
30-10-2020
Herkese selamlar.

2 combobox 1 listbox aracılığıyla bir çalışma yürütüyorum. combobox1'de yıl combobox2'de ay olmak üzere filtreleme yapmak istiyorum. Buna istinaden de bir kod edindim. Fakat başlıkta verdiğim "WorksheetFunction sınıfının edate özelliği alınamıyor." hatası alıyorum.

Yardımcı olabilecek var mıdır?

Kod:
Private Sub ComboBox2_Change()
Me.ListBox1.Clear
Me.ListBox1.AddItem Worksheets("Sayfa1").Cells(1, 1).Value
For a = 1 To 4
Me.ListBox1.List(ListBox1.ListCount - 1, a) = Worksheets("Sayfa1").Cells(1, a + 1).Value
Next a
Me.ListBox1.Selected(0) = True
For i = 2 To Application.WorksheetFunction.CountA(Worksheets("Sayfa1").Range("A:A"))
b = Application.WorksheetFunction.EDate("1" & "/" & Me.ComboBox2.Value & "/" & Me.ComboBox1.Value, 0)
c = Application.WorksheetFunction.EoMonth("1" & "/" & Me.ComboBox2.Value & "/" & Me.ComboBox1.Value, 0)
If Worksheets("Sayfa1").Cells(i, 1).Value >= CDate(b) And Worksheets("Sayfa1").Cells(i, 1).Value <= CDate(c) Then
Me.ListBox1.AddItem Worksheets("Sayfa1").Cells(i, 1).Value
For d = 1 To 4
Me.ListBox1.List(ListBox1.ListCount - 1, d) = Worksheets("Sayfa1").Cells(i, d + 1).Value
Next d
End If
Next i
End Sub

Private Sub UserForm_Initialize()
Me.ComboBox1.Value = Format(Date, "YYYY")
Me.ComboBox2.Value = Format(Date, "MMMM")
For a = 0 To 2
Me.ComboBox1.AddItem Format(Date, "YYYY") - a
Next a
For b = 0 To 11
c = Application.WorksheetFunction.EoMonth("1" & "/" & "Ocak" & "/" & Me.ComboBox1.Value, b)
Me.ComboBox2.AddItem Format(c, "MMMM")
Next b
End Sub
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
Kodlardaki işaretli yerlerdeki gibi tarihi tanımlayıp denermisiniz?
Kod:
Private Sub ComboBox2_Change()
'-------------------------------
Dim t As Date   '<---------------------------------------
'------------------------------------

If ComboBox2.Value = "" Then Exit Sub
Me.ListBox1.Clear
Me.ListBox1.AddItem Worksheets("Sayfa1").Cells(1, 1).Value
For a = 1 To 4
Me.ListBox1.List(ListBox1.ListCount - 1, a) = Worksheets("Sayfa1").Cells(1, a + 1).Value
Next a
Me.ListBox1.Selected(0) = True

For i = 2 To Application.WorksheetFunction.CountA(Worksheets("Sayfa1").Range("A:A"))
'------------------------------------------------------------------------
t = "1" & "/" & Me.ComboBox2.Value & "/" & Me.ComboBox1.Value '<-----------------
b = Application.WorksheetFunction.EDate(t, 0)                                    '<-------------------------
c = Application.WorksheetFunction.EoMonth(t, 0)                         '<-------------------------------
'---------------------------------------------------------------------
If Worksheets("Sayfa1").Cells(i, 1).Value >= CDate(b) And Worksheets("Sayfa1").Cells(i, 1).Value <= CDate(c) Then
Me.ListBox1.AddItem Worksheets("Sayfa1").Cells(i, 1).Value
For d = 1 To 4
Me.ListBox1.List(ListBox1.ListCount - 1, d) = Worksheets("Sayfa1").Cells(i, d + 1).Value
Next d
End If
Next i
End Sub
Kod:
Private Sub UserForm_Initialize()
'-------------------------------
Dim t As Date   '<---------------------------------------
'------------------------------------
Me.ComboBox1.Value = Format(Date, "YYYY")

Me.ComboBox2.Value = Format(Date, "MMMM")

For a = 0 To 2

Me.ComboBox1.AddItem Format(Date, "YYYY") - a

Next a

For b = 0 To 11
'--------------------------------------------------------------
c = Application.WorksheetFunction.EoMonth(t, b) '<----------------
'---------------------------------------------------------------
Me.ComboBox2.AddItem Format(c, "MMMM")

Next b

End Sub
 
Katılım
2 Mayıs 2011
Mesajlar
33
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
30-10-2020
Üstad çok teşekkür ederim yardımınız için.

Yardımcı olunabileceğini düşünerek siz ve diğer arkadaşlardan ek bilgiler edinmek istiyorum.

1) tarih alanını farklı bir sütuna taşımak istediğimde yapmam gereken kod değişikliği nedir? (benim tarih sütunum örn D sütununda)
2) yabancı bir kaynaktan okuduğuma göre listbox'da rowsource kullanırsak me.listbox1.clear kodunun çalışmayacağı söyleniyor (ki bende de rowsource kullanırsam çalışmıyor) bunun çözümü nasıl olabilir?
 

Ekli dosyalar

Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
Kodlarınızı aşağıdaki gibi değiştirip deneyiniz
https://www.dosyaupload.com/fkrN
Kod:
Private Sub ComboBox2_Change()
Dim t As Date
Me.ListBox1.RowSource = ""
If ComboBox2.Value = "" Then Exit Sub
Me.ListBox1.Clear
Me.ListBox1.AddItem Worksheets("Sayfa1").Cells(1, 1).Value
For a = 1 To 7
Me.ListBox1.List(ListBox1.ListCount - 1, a) = Worksheets("Sayfa1").Cells(1, a + 1).Value
Next a
Me.ListBox1.Selected(0) = True
t = "01" & "/" & Me.ComboBox2.Value & "/" & Me.ComboBox1.Value
For i = 2 To Application.WorksheetFunction.CountA(Worksheets("Sayfa1").Range("A:A"))
If CDate(Worksheets("Sayfa1").Cells(i, "D").Value) >= t Then
Me.ListBox1.AddItem Worksheets("Sayfa1").Cells(i, "A").Text
For d = 1 To 7
Me.ListBox1.List(ListBox1.ListCount - 1, d) = Worksheets("Sayfa1").Cells(i, d + 1).Text
Next d
End If
Next i
End Sub
Kod:
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 7
.ColumnWidths = "20,120,70,70,70,70"
End With


Dim t As Date

Me.ComboBox1.Value = Format(Date, "YYYY")
Me.ComboBox2.Value = Format(Date, "MMMM")


For a = 0 To 2
Me.ComboBox1.AddItem Format(Date, "YYYY") - a
Next a

For b = 0 To 11
c = Application.WorksheetFunction.EoMonth(t, b)
Me.ComboBox2.AddItem Format(c, "MMMM")
Next b

End Sub
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Rica ederim
Şu kodlar "combo1" için yeni
Kod:
Private Sub ComboBox1_Change()
If ComboBox1.Value = "" Then Exit Sub
Me.ListBox1.RowSource = ""
Me.ListBox1.Clear
Me.ListBox1.AddItem Worksheets("Sayfa1").Cells(1, 1).Value
For a = 1 To 7
Me.ListBox1.List(ListBox1.ListCount - 1, a) = Worksheets("Sayfa1").Cells(1, a + 1).Value
Next a
Me.ListBox1.Selected(0) = True
Call ComboBox2_Change
End Sub
Bu da isteğinize göre sadece aynı ay olanlar için

Kod:
Private Sub ComboBox2_Change()
Dim t As Date

Me.ListBox1.RowSource = ""
If ComboBox2.Value = "" Then Exit Sub
Me.ListBox1.Clear
Me.ListBox1.AddItem Worksheets("Sayfa1").Cells(1, 1).Value
For a = 1 To 7
Me.ListBox1.List(ListBox1.ListCount - 1, a) = Worksheets("Sayfa1").Cells(1, a + 1).Value
Next a
Me.ListBox1.Selected(0) = True
t = "01" & "/" & Me.ComboBox2.Value & "/" & Me.ComboBox1.Value
For i = 2 To Application.WorksheetFunction.CountA(Worksheets("Sayfa1").Range("A:A"))
If Format(CDate(Worksheets("Sayfa1").Cells(i, "D").Value), "mmmm.yyyy") = Format(t, "mmmm.yyyy") Then
Me.ListBox1.AddItem Worksheets("Sayfa1").Cells(i, "A").Text
For d = 1 To 7
Me.ListBox1.List(ListBox1.ListCount - 1, d) = Worksheets("Sayfa1").Cells(i, d + 1).Text
Next d
End If
Next i
End Sub
 
Katılım
2 Mayıs 2011
Mesajlar
33
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
30-10-2020
En son yapılan kod değişikliği ile de ay ve yıl seçildiğinde sadece ilgili ay ve yıl verileri geliyor. üstada teşekkürler
 
Üst