- Katılım
- 5 Ocak 2009
- Mesajlar
- 1,586
- Excel Vers. ve Dili
- 2003 Türkçe
Selam,
Arkadaşlar, find komutu ile bir değeri birçok kolonda arıyorum. Ancak, bulunan değer aynı satırda birden fazla var ise, satırı ListView'e mükerrer yazıyor. Bunu engelemek isityorum. Aynı zamanda Listview'de aranan değerin olduğu item'i maviye boyuyorum. Bu özelliğin de bozulmamasını istiyorum.
Yardımcı olabilirseniz çok sevinirim.
Arkadaşlar, find komutu ile bir değeri birçok kolonda arıyorum. Ancak, bulunan değer aynı satırda birden fazla var ise, satırı ListView'e mükerrer yazıyor. Bunu engelemek isityorum. Aynı zamanda Listview'de aranan değerin olduğu item'i maviye boyuyorum. Bu özelliğin de bozulmamasını istiyorum.
Yardımcı olabilirseniz çok sevinirim.
Kod:
Private Sub CommandButton1_Click()
Dim son As Long
Dim stok As Worksheet
Dim lv As ListView
Dim bulunan As Range, sat As Long, ilkadres As Variant
Set stok = Sheets("stok")
son = stok.Cells(65536, "B").End(3).Row
Set lv = Me.ListView1
lv.ListItems.Clear
If Me.TextBox1 = "" Then
'MsgBox "textbox boş"
lv.ListItems.Clear
Exit Sub
End If
sat = 1
With stok.Range("A2:M65536")
Set bulunan = .Find(Me.TextBox1.Text, LookIn:=xlValues)
If Not bulunan Is Nothing Then
ilkadres = bulunan.Address
Do
lv.ListItems.Add
lv.ListItems(sat) = stok.Cells(bulunan.Row, "A")
lv.ListItems(sat).SubItems(1) = stok.Cells(bulunan.Row, "B")
lv.ListItems(sat).SubItems(2) = stok.Cells(bulunan.Row, "C")
lv.ListItems(sat).SubItems(3) = stok.Cells(bulunan.Row, "D")
lv.ListItems(sat).SubItems(4) = stok.Cells(bulunan.Row, "E")
lv.ListItems(sat).SubItems(5) = stok.Cells(bulunan.Row, "F")
lv.ListItems(sat).SubItems(6) = stok.Cells(bulunan.Row, "G")
lv.ListItems(sat).SubItems(7) = bulunan.Row '
lv.ListItems(sat).SubItems(8) = bulunan.Column '
lv.ListItems(sat).ListSubItems(bulunan.Column - 1).ForeColor = vbBlue
sat = sat + 1
Set bulunan = .FindNext(bulunan)
Loop While Not bulunan Is Nothing And bulunan.Address <> ilkadres
End If
End With
MsgBox sat
End Sub
Son düzenleme: