Listview finditem

Status
Niet open voor verdere reacties.

harolda1980

Gebruiker
Lid geworden
7 aug 2007
Berichten
488
Ik probeer in mijn listview een zoekfunctie toe te voegen! Die zoekt op worden die in de tweede kolom voorkomen.


Ik wil dus zoeken op het woord "Remia"

iemand een idee hoe ik dit kan realiseren dat ik bijvoorbeeld de index van de rij terugkrijg?

Code:
Dim i As ListItem
Set i = lssnel.FindItem("Remia", lvwSubItem, , 1)
If i Is Nothing Then
 MsgBox "not found"
Else'
 MsgBox i.index
End If
 
Mijn Office kent geen ListItem, en geen FIndItem.... Leg dat eerst eens uit :)
 
Die kun je importeren als extra besturingselementen. aangezien die al op je pc zit. En een listview is net iets uitgebreider dan een listbox. in een view kun je namelijk net iets meer doen via google met kijken naar fotos kom je er achter'wat globaal de mogelijkheden zijn!
 
Code:
Sub FindListItem()
Dim i As Integer
    For i = 1 To lssnel.listitems.Count
        If lssnel.listitems(i).subitems(1) = "Remia" Then
            MsgBox lssnel.listitems(i).Index
            Exit For
        End If
    Next
End Sub
 
Dat is een mooie code alleen dient remia dat in de cell voor te komen maar als er remia mayonaise staat pakt hij hem niet als ik het goed heb toch?

Hoe zou je dat op lossen?
 
Code:
Sub FindListItem()
Dim i As Integer
    For i = 1 To ListView1.listitems.Count
        If InStr(ListView1.listitems(i).subitems(1), "Remia") > 0 Then 'deel v/e woord
            MsgBox ListView1.listitems(i).Index
            Exit For
        End If
    Next
End Sub
 
Kijk dit werk nog eens. Nu zou ik eigenlijk willen dat de rij geselecteerd gaat worden als hij er eentje heeft gevonden. of dat je verder kunt zoeken?
 
Brengt de gevonden regel in het zichtbare venster
Code:
ListView1.ListItems(i).EnsureVisible

Kleurt het gevonden woord
Code:
ListView1.ListItems(i).ListSubItems.Item(1).ForeColor = RGB(255, 0, 0)
 
Mooie code hij deed het maar nu niet meer.. vreemd! Enig idee wat en waar hij fout gaat?
Code:
Private Sub cmdsearch_Click()
    If txtzk.Value <> "" Then
        Dim i As Integer
        lstophalen.ListItems(1).EnsureVisible
        For i = 1 To lstophalen.ListItems.Count
            If InStr(lstophalen.ListItems(i).SubItems(1), txtzk.Value) > 0 Then 'deel v/e woord
                lstophalen.ListItems(i).ListSubItems.Item(1).ForeColor = RGB(255, 0, 0)
                lstophalen.ListItems(i).EnsureVisible
                Exit For
            End If
        Next
    End If
End Sub
 
Bij mij werkt dit perfect zo.
Code:
Private Sub cmdsearch_Click()
    If txtzk.Value <> "" Then
        Dim i As Integer
        For i = 1 To lstophalen.listitems.Count
            If InStr(lstophalen.listitems(i).subitems(1), txtzk.Value) > 0 Then 'deel v/e woord
                lstophalen.listitems(i).EnsureVisible
                lstophalen.listitems(i).ListSubItems.Item(1).ForeColor = RGB(255, 0, 0)
                Exit For
            End If
        Next
    End If
End Sub
 
Hij doet het wel alleen kleurt hij de regel niet merk ik nu!? Hij verspringt wel netjes.
 
Enkel het gevonden woord wordt gekleurd.
 
Hij doet het.... Het lag aan de manier van kleur aanroepen!

Code:
lstophalen.ListItems(i).ListSubItems.Item(1).ForeColor = &HFF&
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan