Pasar un código de evento hoja a un formulario textbox

Tengo un código que filtra datos a partir de una parte de la palabra buscada en la cenda B2, lo importante de este código es que no solamente busca las primeras letras de la palabra osea:

Si busco JUEVES y pongo jue este lo buscara en una lista especifica con éxito además de regresar las palabras que empiecen con JUE, lo que me gusta de este código es que

Si en b2 coloco VES entonces me regresara todas aquellas palabras que contenga VES incluyendo jueVES...

el código es el sig.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "B2" Then
Application.ScreenUpdating = False
ActiveSheet.Unprotect "28021990"
If ActiveSheet.FilterMode Then ShowAllData
Application.EnableEvents = False
Application.ExecuteExcel4Macro "show.toolbar(""ribbon"",FALSE)"
Target.Value = "*" & Target.Value & "*"
Application.EnableEvents = True
'desactivamos la actualizacion de la pantalla, es decir ocultamos lo que la macro hace
Application.ScreenUpdating = False
'si existe algun error de uso lo ignora o salta al siguiente error
On Error Resume Next
'BD dinamica lista para efectuar el filtro avanzado en el mismo lugar, desde B1 hasta D2
u = Range("B" & Rows.Count).End(xlUp).Row
Range("B4:E" & u).AdvancedFilter 1, _
Range("B1"). CurrentRegion
'autoajusta toda fila usada
Cells. Rows. AutoFit
'autoajusta toda columna usada
Cells. Columns. AutoFit
'activamos la actualización de la pantalla
Application.ScreenUpdating = True
ActiveSheet.Protect "28021990"
Range("B2").Select
Range("A6:A900").Value = "Pulsa aqui"
End If
End Sub

Lo que quisiera es pasar este código en un TEXTBOX1 que al poner la palabra como lo ponga este me regrese los datos en un LISTBOX (la celda que usaba era la B2) que la sustituirá el TEXTBOX y los datos se encuentran en la col B, (eso no creo que cambiara) solo es pasar la el código.

1 Respuesta

Respuesta
1

H o l a: Pon lo siguiente en tu formulario

Private Sub TextBox1_Change()
'---
'   Por.Dante Amor
'---
    Set h1 = Sheets("bd")
    ListBox1.Clear
    If TextBox1 = "" Then Exit Sub
    For i = 5 To h1.Range("B" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "B") Like "*" & TextBox1 & "*" Then
            ListBox1.AddItem h1.Cells(i, "B")
            ListBox1.List(ListBox1.ListCount - 1, 1) = h1.Cells(i, "C")
            ListBox1.List(ListBox1.ListCount - 1, 2) = h1.Cells(i, "D")
            ListBox1.List(ListBox1.ListCount - 1, 3) = h1.Cells(i, "E")
        End If
    Next
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas