Find ile listboxa aktarma

bravo64

Altın Üye
Katılım
21 Eylül 2005
Mesajlar
184
Excel Vers. ve Dili
ofis 365 İngilizce
Altın Üyelik Bitiş Tarihi
25-10-2024
merhaba arkadaşlar,
Tahsilat adında bir sayfam var.Bu sayfada ad,tarih,mak.no ve tutar sütünları mevcut.Userformumdaki listboxa combobox içinde yer alan tarihi girdiğimde ,listboxa bu tarihle ilgili kayıtları atamak istiyorum..Ama yapamadım..Verdiğiniz örnekleri inceledim,karıştırdım ama olmadı.En son hali şöyle;
Private Sub CommandButton1_Click()
Set s1 = Sheets("tahsilat")
sat = s1.Columns(5).Find(ComboBox1.Value).Row
ListBox1.AddItem
ListBox1.List(0, 0) = s1.Cells(sat, 2)
ListBox1.List(0, 1) = s1.Cells(sat, 6)
End Sub
Tarih sütunu"E" buarada...............
Private Sub userform_initialize()
ComboBox1.RowSource = "tahsilat!e2:e" & Sheets("tahsilat").[e65536].End(3).Row
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "50;50"
End Sub
Tabi oldukça acemice, mesela for döngüsü yok birden çok kaydı bulmak için falan..
Teşekkürler yardımlarınız için..
 

bravo64

Altın Üye
Katılım
21 Eylül 2005
Mesajlar
184
Excel Vers. ve Dili
ofis 365 İngilizce
Altın Üyelik Bitiş Tarihi
25-10-2024
Arkadaşlar,sonunda yaptım..
Private Sub CommandButton2_Click()
Sheets("rapor").[a2:f65536].ClearContents
Sheets("tahsilat").Select
For a = 1 To [b65536].End(3).Row
If Sheets("tahsilat").Cells(a, "b") = ComboBox1.Value Then
c = c + 1
For b = 3 To 6
Sheets("rapor").Cells(c + 1, b) = Sheets("tahsilat").Cells(a, b).Value
Next
End If
Next
ListBox1.RowSource = "rapor!c2:f" & [f65536].End(3).Row
TextBox1 = Sheets("rapor").[m1].Value
Sheets("anaterminal").Select
End Sub
Yalnız burada "b"sütununda isimler var,buna göre gayet güzel çalışıyor.Ancak "e"sütununda tarihler var ve ben tarihe göre listboxda görünmesini istiyorum.Kodu e ye göre düzenledim;
Private Sub ComboBox2_Change()

Sheets("rapor").[a2:f65536].ClearContents
Sheets("tahsilat").Select
For a = 1 To [e65536].End(3).Row
If Sheets("tahsilat").Cells(a, "e") = ComboBox2.Value Then
c = c + 1
For b = 3 To 6
Sheets("rapor").Cells(c + 1, b) = Sheets("tahsilat").Cells(a, b).Value
Next
End If
Next
ListBox2.RowSource = "rapor!c2:f" & [f65536].End(3).Row
TextBox2 = Sheets("rapor").[m1].Value
Sheets("anaterminal").Select
ama hata vermiyor ama veride aktarmıyor..Hata mesajı falan da yok..combobox2 tarih formatında..
Neden aktarma yapmıyor olabilir?
 

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:890a642eb4]If Sheets("tahsilat").Cells(a, "e") = ComboBox2.Value Then
[/vb:1:890a642eb4]

Yukarıdaki satırı aşağıdaki ile değiştirerek deneyin.

[vb:1:890a642eb4]If clng(cdate(Sheets("tahsilat").Cells(a, "e"))) = clng(cdate(ComboBox2.Value)) Then
[/vb:1:890a642eb4]

Not:textbox veya comboboxtaki tarih tarih formatı ile biçimlendirilse bile metin olarak algılanır, bu sebeple bu değerleri tarih değişkenine yada tarihi sayıya çevirerek karşılaştırmak en garantili yöntemdir. Bunun için değişkenler konusu iyi bilinmelidir.

http://www.excel.web.tr/viewtopic.php?t=4673
 

bravo64

Altın Üye
Katılım
21 Eylül 2005
Mesajlar
184
Excel Vers. ve Dili
ofis 365 İngilizce
Altın Üyelik Bitiş Tarihi
25-10-2024
sevgili leventm,type mismatch veriyor..
 

bravo64

Altın Üye
Katılım
21 Eylül 2005
Mesajlar
184
Excel Vers. ve Dili
ofis 365 İngilizce
Altın Üyelik Bitiş Tarihi
25-10-2024
sevgili leventm,
If Sheets("tahsilat").Cells(a, "e") = clng(cdate(ComboBox2.Value)) Then
olarak düzelttim ve kod başarılı oldu..Verdiğiniz link çok güzel..
teşekkür ederim..
 
Üst