Utilizar más de un textbox para una tabla dinámica dentro de una búsqueda inteligente en tiempo real

Tengo la siguiente hoja que es para capturar salidas de material de almacen

*.- En el textbox1 tengo capturada la palabra "TORN", y a la derecha se muestra en una tabla dinámica la información en tiempo real de los elementos que contienen esas letras dentro de su descripción (en automático sin tener que dar enter)

*.- Posterior a eso puedo dar doble click sobre cualquier elemento de la derecha y ese se colocara en el textbox 1 que esta a la izquierda.

*.- Hasta ahí todo funciona perfectamente

Ahora lo que ocupo es poder hacer lo mismo con el textbox2, 3, 4, etc. Pero no tengo idea de que código capturar para este fin, agradecería de su apoyo para poder terminar este libro.

Comparto el código que tengo para esta hoja

Private Sub TextBox1_Change()
Application.ScreenUpdating = False
    If TextBox1.Text = "" Then
        ActiveSheet.PivotTables("Tabla din articulos").PivotFields("ARTICULOS").ClearAllFilters
        ActiveSheet.PivotTables("Tabla din articulos").PivotFields("ARTICULOS").PivotFilters.Add Type:=xlCaptionEquals, Value1:=""
        Columns(49).ColumnWidth = 42.14
        Rows("1:63").RowHeight = 9
    Else
        ActiveSheet.PivotTables("Tabla din articulos").PivotFields("ARTICULOS").ClearAllFilters
        ActiveSheet.PivotTables("Tabla din articulos").PivotFields("ARTICULOS").PivotFilters.Add Type:=xlCaptionContains, Value1:=TextBox1.Text
        Columns(49).ColumnWidth = 42.14
        Rows("1:63").RowHeight = 9
    End If
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.ScreenUpdating = False
    Cancel = True
    If Not Intersect(Target, Range("AW1:AW63")) Is Nothing Then
        TextBox1.Text = ActiveCell.Text
        ActiveSheet.PivotTables("Tabla din articulos").PivotFields("ARTICULOS").ClearAllFilters
        ActiveSheet.PivotTables("Tabla din articulos").PivotFields("ARTICULOS").PivotFilters.Add Type:=xlCaptionEquals, Value1:=""
        Columns(49).ColumnWidth = 42.14
        Rows("1").RowHeight = 9
        TextBox1.Activate
    End If
End Sub
Respuesta
1

Creo que no me explique bien, necesitas un solo textbox y solo uno más un listbox, mira la imagen del resultado de la macro conforme tecleas en el textbox irán apareciendo las coincidencias en el listbox y si borras alguna letra igual se actualizando la lista, si borras la palabra completa o la palabra no existe el listbox se limpiara, del listbox seleccionas el articulo y este an automático sera enviado una fila después de la ultima con datos.

y esta es la macro, solo necesitas esto para que funcione una hoja llamada hoja3 a esa hoja se copiaran las coincidencias y de esa hoja el listbox las tomara, se limpia automáticamente conforme tecleas o borras letras y es todo.

Private Sub ListBox1_Click()
palabra = ListBox1.Value
filas = Range("b13").CurrentRegion.Rows.Count
Range("b13").Rows(filas + 1).Value = palabra
TextBox1.Activate
End Sub
Private Sub TextBox1_Change()
Set h2 = Sheets("listado").Range("a1").CurrentRegion
Set h3 = Sheets("hoja3")
h3.Cells.Clear
palabra = TextBox1.Text
If palabra <> Empty Then
With h2.Range("a1").CurrentRegion
    .AutoFilter
    .AutoFilter 1, "*" & palabra & "*"
    .Offset(1).Copy
    h3.Range("f1").PasteSpecial
    matriz = h3.Range("f1").CurrentRegion
    If IsArray(matriz) = False Then
        ListBox1.Clear
        ListBox1.AddItem matriz
        GoTo sal
    End If
    With ListBox1
        .List = matriz
        .Width = 230
        .Height = 280
    End With
End With
Else
    With ListBox1
        .Clear
        .Width = 230
        .Height = 280
    End With
    h3.Cells.Clear
End If
sal:
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas