satırdaki dolu hücre

Katılım
1 Mart 2005
Mesajlar
71
selamlar
formda araştırma yaptım bir kaç konu buldum ancak hiçbirini kendime uyarlayamadım
text ile arattığım sayfada bulunan bir kaç satırdaki (bu bazen 1,10 ,12,100 olabilir değişebilir) a1:an1000 arasındaki text ile bulunan satırdaki dolu hücreleri listboxa atmak istiyorum
diyelimki ben a1:n1000 arasında serkan verisini arattım ve 15 adet buldu bu aralıkta.sütun başlıkları değişik olduğu için bulunan değerin satrını listboxa atayacak
saygılar
 

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
Bir örnek dosya eklermisiniz onun üzerinden gidelim.
 
Katılım
1 Mart 2005
Mesajlar
71
selamlar
açıklamayı dosya içinde de yaptım ama mutlaka copy-paste olmayacak
saygılar
 
Katılım
1 Mart 2005
Mesajlar
71
selamlar
tamam copy-paste işlemi olsun desek nasıl olacak bu iş arattığım verinin bulduğu satırı sayfa1 e aktaralım :eek:
saygılar
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
http://www.excel.web.tr/viewtopic.php?p=14766#14766

Bu linktede benzer bir uygulama var, doğrudan listbox'a yerleştirmek bazen kafa karıştırabiliyor onun yerine aşağıdaki gibi diziye yerleştirirseniz daha rahat çalışırsınız.İstediğinizi yanlış anlamış olabilirim ama bu kodlar ile daha rahat modifiye edebilirsiniz istediğiniz şekle. Listbox'ınızın propertiesinde columncount'ıda kaç kolon olacaksa ona göre ayarlayın önce.. galiba 40..


[vb:1:69094b10dd]
Private Sub CommandButton1_Click()
Dim satirda(100, 40)

If Not TextBox1 = Empty Then

Say = WorksheetFunction.CountA(Sheets("sayfa1").Range("l2:aj15000"))
Set bulHucre = Sheets("sayfa1").Range("l2:aj" & Say).Find(TextBox1.Text, lookat:=xlPart)
If bulHucre Is Nothing Then Exit Sub

ilkAdres = bulHucre.Address
ilksat = bulHucre.Row
i = 0

Do While Not IsEmpty(bulHucre)
i = i + 1
For t = 1 To 40
satirda(i, t) = Cells(ilksat, t)
Next t

Set bulHucre = Sheets("sayfa1").Range("l2:aj" & Say).FindNext(bulHucre)
If bulHucre.Address = ilkAdres Then Exit Do
ilkAdres = bulHucre.Address
ilksat = bulHucre.Row
Loop

End If
ListBox1.List = satirda()
Set bulHucre = Nothing
End Sub
[/vb:1:69094b10dd]
 
Katılım
1 Mart 2005
Mesajlar
71
selam hocam

satirda(i, t) = Cells(ilksat, t)
hata 9: subscript out of range hatası veiryor

vermiş olduğunuz linki incelemiştim daha önce onun üzerinde bayağı bi uğraştım yine beceremedim :kafa: acemilik zor zanaat hala onun üzerinde çalışıyorum
hocam çözümlerinizi bekliyorum
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
satirda dizisini 100 satır ile kısıtladığım için daha fazla bulduğunda hata vermesi normal. Redimle yapılır sanırım ama fikrimi sorarsanız kullanıcı arama kutusuna yeri geldiğinde sadece "a" yazıp aratacak ve binlere sonuç dmnecektir , bunların hepsini listbox'a doldurmaya çalışır, çöker. 100 veya makul bir sınır koyup
i=i+1 satırının altına
If i > 100 Then Exit Do 'gibi bir kontrol koyarsanız hata vermez, bulduğu ilk yüz satırı yerleştirir.
 
Katılım
1 Mart 2005
Mesajlar
71
tekrar selamlar biliyorum uzadıbu konu ama affınıza sığınırak fikir istiyorum
Private Sub CommandButton1_Click()
If Not TextBox1 = Empty Then
Say = WorksheetFunction.CountA(Sheets("sayfa1").Range("l2:aj15000"))
Set bulhucre = Sheets("sayfa1").Range("l2:aj" & Say).Find(TextBox1.Text, lookat:=xlPart)
If bulhucre Is Nothing Then Exit Sub
ilkAdres = bulhucre.Address
i = 0

Do While Not IsEmpty(bulhucre)
bulhucre.EntireRow.Interior.ColorIndex = 6

Set bulhucre = Sheets("sayfa1").Range("l2:aj" & Say).FindNext(bulhucre)
If bulhucre.Address = ilkAdres Then Exit Do
Loop
End If
Set bulhucre = Nothing
Worksheets("sayfa1").Select
Dim satir As Integer
For Each benzer In Range("a2:a1000")
If benzer.Interior.ColorIndex = 6 Then
benzer.Select
Next benzer
End Sub

bu şekilde listboxa atmadan direk sayfa 2 ye atacam bulunan verilerdeki tüm satırı color =6 yaprım çünki verim l:aj arasında herhangi bi yerde olabilir bunu yapmamın amacı a1 hücresini referans almak şimdi buraya kadar herşey tamam
hücre dolgusu 6 ve ben en altta dolgu 6 olanları seçip sayfa2 ye atmak istiyorum napalım biraz uzun sürecek ama şimdilik böyle olsun diye düşünüyorum
SORU : Worksheets("sayfa1").Select
Dim satir As Integer
For Each benzer In Range("a2:a1000")
If benzer.Interior.ColorIndex = 6 Then
benzer.Select
Next benzer
End Sub
sayfa2 ye kopyalamak
saygılar
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
@sekand yanlış anlamadı isem bu sorunuza
http://www.excel.web.tr/viewtopic.php?t=3502 linkte cevap aldınız. Vaktim olmadı bir türlü ilgilenmeye ama sanırım listbox yerine başka sayfayada taşıtsanız find yöntemi ile onlarca sütunda benzerleri bulduğunuz için kullanıcı 1 veya 2 karakter girdiğinde hemen tüm satırları taşıtmış olacaksınız 2. sayfaya.. :?
 
Üst