¿Cómo mantener activa o activar una fila al realizar un filtrado a un listbox?

Soy nuevo en este foro y la verdad me pareció muy interesante, hace poco me metí en este entorno de Excel y VBA, y gracias a ustedes he aprendido mucho. Te quería hacer una consulta sobre una duda que estoy teniendo con un programita que estoy haciendo en VBA (Algo sencillo como para ir aprendiendo más), tengo un listbox en donde tengo dos columnas en una tengo nombre de vídeos de Youtube y en la otra columna su respectivo enlace o vinculo, al seleccionar el nombre del vídeo en el Listbox en el WebBrowser de abajo me apare un vista previa del vídeo y si presiono el botón que dice VER VIDEO ONLINE abre el vídeo en el navegador. Ahora mi consulta es la siguiente: al realizar el filtrado para buscar el nombre del vídeo y presiono el botón VER VIDEO ONLINE me sale un error (Imagen2), busque en muchas parte y no consigo encontrar solución o quizás la encontré y no le estaría entendiendo a la solución. Te agradecería muchísimo si me podrías dar una respuesta y una solución, te lo consulto porque vi que sos de las personas que más sabe sobre estos temas y que diste millones de soluciones. Te lo agradecería de corazón para ir aprendiendo un poco más sobre este entorno. Te dejo los códigos abajo

'CODIGO VER VIDEO

Private Sub CommandButton2_Click()

On Error GoTo ControlErrores

ThisWorkbook.FollowHyperlink Address:=ListBox1.List(ListBox1.ListIndex, 1)

Exit Sub

ControlErrores:

If Err.Number = -2147221014 Then
MsgBox "El vínculo no es correcto!!!"
Else
MsgBox "Error tipo: " & Err.Description
End If

Exit Sub

End Sub

Private Sub CommandButton3_Click()
Load UserForm3X
Unload UserForm1X
UserForm3X.Show
End Sub

' MOSTRAR VISTA PREVIA
Private Sub ListBox1_Click()

On Error Resume Next

imagen = ListBox1.List(ListBox1.ListIndex, 0) & ".jpg"
WebBrowser1.Navigate ThisWorkbook.Path & "\VIDEOS_SCREEN" & "\" & imagen

End Sub

'FILTRADO POR TEXTBOX

Private Sub TEXTO_Change()

NumeroDatos = Hoja3.Range("A" & Rows.Count).End(xlUp).Row

Hoja1.AutoFilterMode = False
Me.ListBox1 = Clear
Me.ListBox1.RowSource = Clear

y = 0

For fila = 2 To NumeroDatos
video = Hoja3.Cells(fila, 1).Value

If UCase(video) Like "*" & UCase(Me.TEXTO.Value) & "*" Then
Me.ListBox1.AddItem
Me.ListBox1.List(y, 0) = Hoja3.Cells(fila, 1).Value

y = y + 1

End If

Next

End Sub

1 respuesta

Respuesta
1

No se a quien va dirigida la consulta ... aquí te dejo mi sugerencia.

El evento TEXTO_Change se ejecuta con cada letra que ingresas en el control Textbox... por lo tanto siempre te está limpiando la lista. Debieras reemplazarlo por EXIT

Private Sub TEXTO_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Y tu lista se observa con 1 sola col... y estás enviándole solo la col A de tu base de datos.

Por lo tanto esa col no tiene el vínculo x eso te falla el botón VER VIDEO,

Private Sub TEXTO_Exit(ByVal Cancel As MSForms.ReturnBoolean)
NumeroDatos = Hoja7.Range("A" & Rows.Count).End(xlUp).Row
Hoja1.AutoFilterMode = False
ListBox1 = Clear
ListBox1.RowSource = Clear
y = 0
For fila = 2 To NumeroDatos
    video = Hoja7.Cells(fila, 1).Value
    If UCase(video) Like "*" & UCase(TEXTO.Value) & "*" Then
        ListBox1.AddItem
        ListBox1.List(y, 0) = Hoja7.Cells(fila, 1).Value
        ListBox1.List(y, 0) = Hoja7.Cells(fila, 1).Value
        ListBox1.List(y, 1) = Hoja7.Cells(fila, 2).Value  '2da col
        y = y + 1
    End If
Next
End Sub

Y esta es la del botón VER VIDEO:

Private Sub CommandButton2_Click()
On Error GoTo ControlErrores
ThisWorkbook.FollowHyperlink Address:=ListBox1.List(ListBox1.ListIndex, 1)
Exit Sub
ControlErrores:
If Err.Number = -2147221014 Then
    MsgBox "El vínculo no es correcto!!!"
Else
    MsgBox "Error tipo: " & Err.Description
End If
End Sub

También tendrás que arreglar la que te muestra el video en el webbrowser. 

Y revisa el nombre de las hojas ya que las dejé con las mías.

PD) Te invito a ver el video 11 de mi canal donde comento los errores frecuentes al copiar-pegar códigos encontrados en la web (uso de Me., nombres de hojas,  ;)

Sdos y no olvides valorar las respuestas.

Elsa

¡Gracias! 

Buen Dia Elsa! Recien tuve la oportunidad de poder revisar tu solucion. Me funciono perfecto. Muchisimas gracias por tu tiempo en responderme y darme la solucion. De corazon muchas gracias. Saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas