Cambiar código de textbox que llena listbox a listview

Dante Amor

¿Hola Dan como estas?

Me podrías ayudar con esto por favor .. Tengo un textbox que al escribir busca la palabra exacta o con la letra que empieza y trae los datos al listbox pero ya no quiero ocupar el listbox .. Quiero ocupar un listview

Este es el código

¿Cómo se pasaría de listbox a listview?

Por favor dan gracias

Private Sub txtbuscar_Change()
Application.ScreenUpdating = False
    Lb_buscar.Clear
    Lb_buscar.ColumnCount = 7
    Lb_buscar.ColumnWidths = "60;100;90;80;120;130"
    For i = 2 To Hoja3.Range("A" & Rows.Count).End(xlUp).Row
        cadena = UCase(Hoja3.Cells(i, 1))
        If cadena Like "*" & UCase(txtbuscar) & "*" And Hoja3.Cells(i, "A") <> 0 Then
            existe = False
            '
            For j = 0 To Lb_buscar.ListCount - 1
                If Hoja3.Cells(i, "A").Text = Lb_buscar.List(j) Then
                    Lb_buscar.List(j, 1) = Hoja3.Cells(i, "W").Value
                  Lb_buscar.List(j, 2) = Hoja3.Cells(i, "AA").Value
                    Lb_buscar.List(j, 3) = Lb_buscar.List(j, 2) - Lb_buscar.List(j, 1)
                  Lb_buscar.List(j, 5) = DateAdd("yyyy", 1, Hoja3.Cells(i, "X").Value)
                    existe = True
                     Exit For
                End If
            Next
            If existe = False Then
            ''''''''''''''''''''''
              Lb_buscar.AddItem Hoja3.Cells(i, "A").Value
 '
             Lb_buscar.List(Lb_buscar.ListCount - 1, 1) = Hoja3.Cells(i, "W").Value
             Lb_buscar.List(Lb_buscar.ListCount - 1, 2) = Hoja3.Cells(i, "AA").Value
             Lb_buscar.List(Lb_buscar.ListCount - 1, 3) = Lb_buscar.List(Lb_buscar.ListCount - 1, 2) - Lb_buscar.List(Lb_buscar.ListCount - 1, 1)
                  '''''''''''''''''
               Lb_buscar.List(Lb_buscar.ListCount - 1, 4) = Hoja3.Cells(i, "X").Value
              If Hoja3.Cells(i, "Y") <> 0 Then
              Lb_buscar.List(Lb_buscar.ListCount - 1, 5) = DateAdd("yyyy", 1, Lb_buscar.List(Lb_buscar.ListCount - 1, 4))
                Else
                Lb_buscar.List(Lb_buscar.ListCount - 1, 5) = DateAdd("yyyy", 1, Lb_buscar.List(Lb_buscar.ListCount - 1, 4))
                Lb_buscar.List(Lb_buscar.ListCount - 1, 6) = DateAdd("yyyy", 1, Lb_buscar.List(Lb_buscar.ListCount - 1, 4)) - Date
            End If
            End If
            End If
    Next
End Sub
Respuesta
2

Es más complicado utilizar el ListView y no hay mucha documentación.

Pero te pongo unos ejemplos.

Tienes que poner las columnas que vas a utilizar, puede ser en el evento Activate:

Private Sub UserForm_Activate()
    ListView1.ColumnHeaders.Clear
    ListView1.ColumnHeaders.Add , , Text:="Columna1"
    ListView1.ColumnHeaders.Add Index:=2, Text:="Poner el título de la 2"
    ListView1.ColumnHeaders.Add Index:=3, Text:="otro texto"
    ListView1.ColumnHeaders.Add Index:=4, Text:="y otro texto"
    ListView1.Gridlines = True
    ListView1.MultiSelect = True
End Sub

Mi ejemplo es de 4 columnas, pero tú deberás adaptarlo para el número de columnas que necesites.

Private Sub txtbuscar_Change()
    For i = 2 To Hoja3.Range("A" & Rows.Count).End(xlUp).Row
        cadena = UCase(Hoja3.Cells(i, 1))
        If cadena Like "*" & UCase(txtbuscar) & "*" And Hoja3.Cells(i, "A") <> 0 Then
            'EN EL LISTBOX
            'Lb_buscar.AddItem Hoja3.Cells(i, "A").Value
            'Lb_buscar.List(Lb_buscar.ListCount - 1, 1) = Hoja3.Cells(i, "W").Value
            'Lb_buscar.List(Lb_buscar.ListCount - 1, 2) = Hoja3.Cells(i, "AA").Value
            'Lb_buscar.List(Lb_buscar.ListCount - 1, 3) = Hoja3.Cells(i, "X").Value
            '
            'EN EL LISTVIEW
            Set item = ListView1.ListItems.Add(Text:=Hoja3.Cells(i, "A").Value)
            item.SubItems(1) = Hoja3.Cells(i, "W").Value
            item.SubItems(2) = Hoja3.Cells(i, "AA").Value
            item.SubItems(3) = Hoja3.Cells(i, "X").Value
        End If
    Next
End Sub

Insisto, es un ejemplo, deberás adaptarlo a tus datos y a tus necesidades. Como te dije, no hay mucha documentación al respecto. Tendrás que seguir investigando. Pero ya tienes una base para empezar.

[sal u dos

Dan

Probé el ejemplo y es complicado!! si usted lo encuentra dificultoso imagínese yo intentando hacerlo...

Lo que asa es que lei que en el listview se podía marcar una fila con un color  según una condición y el listbox no se puede.. mejor me quedo con el listbox .. le puedo hace otra pregunta por favor es para filtrar un listbox!!

Realiza la prueba en un form nuevo, para que aprendas a utilizarlo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas