.
Esta es otra versión de macro que busca datos a medida que se escribe en Textbox c
on la particularidad que presenta los datos en un listbox incrustado o insertado en Excel denominado control ActiveX, las otras versiones relacionadas las encuentras en los siguientes links:
https://macrosenexcel.com/2016/10/buscar-datos-medida-que-se-escribe.html
https://macrosenexcel.com/2015/08/buscar-datos-medida-que-se-escribe-en.html
https://macrosenexcel.com/2015/09/pasar-datos-de-listbox-con-doble-click.html
https://macrosenexcel.com/2015/08/buscar-en-listbox-mientras-se-escribe.html
https://macrosenexcel.com/2015/09/pasar-datos-listbox-hoja-de-excel.html
https://macrosenexcel.com/2015/10/pasar-datos-de-listbox-multiselect-hoja.html
https://macrosenexcel.com/2015/09/pasar-datos-de-listbox-con-doble-click.html
Otras pequeñas macros interesantes son: macro que sólo permite en el Textbox ingresar texto o string, macro que sólo deja ingresar números en los Textbox, otra es macro que escribe las barras automáticamente al ingresar las fechas.
Antes de seguir recomiendo que leas un excelente libro sobre Excel el que te ayudará operar las planillas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.
Al escribir en el textbox la macro buscará en la base de datos y mostrará todas las coincidencias que se den con los caracteres escritos, la macro va buscando a medida que el usuario escriba caracteres en el textbox y mostrando las coincidencias con los caracteres sea que se encuentran al principio, medio o final de la palabra.
Suscribe a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlas, buscar en listbox mientras escribes en textbox, ordenar hojas libro excel por su nombre, conectar Excel con Access y muchos ejemplos más.
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}
Código que se inserta en la Hoja donde se requiere el filtroPrivate Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets(«Hoja1»).Range(«A2»).Value = «*» & TextBox1.Text & IIf(TextBox1.Text = «», «», «*»)
Call searching
End Sub
Private Sub searching()
On Error Resume Next
Set a = Sheets(«Hoja1»)
Set b = Sheets(«Hoja2»)
uf = b.Range(«A» & Rows.Count).End(xlUp).Row
a.ListBox1.Clear
For i = 2 To uf
strg = b.Cells(i, 3).Value
If UCase(strg) Like UCase(a.TextBox1.Value) & «*» Then
a.ListBox1.AddItem b.Cells(i, 1)
a.ListBox1.List(a.ListBox1.ListCount – 1, 1) = b.Cells(i, 2)
a.ListBox1.List(a.ListBox1.ListCount – 1, 2) = b.Cells(i, 3)
a.ListBox1.List(a.ListBox1.ListCount – 1, 3) = b.Cells(i, 4)
End If
Next i
a.ListBox1.ColumnWidths = «20 pt;120 pt ;120 pt;120 pt»
End Sub
Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets(«Hoja1»).Range(«E2»).Value = «*» & TextBox2.Text & IIf(TextBox2.Text = «», «», «*»)
Call searching1
End Sub
Private Sub searching1()
On Error Resume Next
Set a = Sheets(«Hoja1»)
Set b = Sheets(«Hoja2»)
uf = b.Range(«A» & Rows.Count).End(xlUp).Row
a.ListBox1.Clear
For i = 2 To uf
strg = b.Cells(i, 4).Value
If UCase(strg) Like UCase(a.TextBox2.Value) & «*» Then
a.ListBox1.AddItem b.Cells(i, 1)
a.ListBox1.List(a.ListBox1.ListCount – 1, 1) = b.Cells(i, 2)
a.ListBox1.List(a.ListBox1.ListCount – 1, 2) = b.Cells(i, 3)
a.ListBox1.List(a.ListBox1.ListCount – 1, 3) = b.Cells(i, 4)
‘ Me.ListBox1.List(Me.ListBox1.ListCount – 1, 4) = b.Cells(i, 5)
‘ Me.ListBox1.List(Me.ListBox1.ListCount – 1, 5) = b.Cells(i, 6)
‘ Me.ListBox1.List(Me.ListBox1.ListCount – 1, 6) = b.Cells(i, 7)
‘ Me.ListBox1.List(Me.ListBox1.ListCount – 1, 7) = b.Cells(i, 8)
End If
Next i
a.ListBox1.ColumnWidths = «20 pt;120 pt ;120 pt;120 pt»
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets(«Hoja1»).Range(«A2»).Value = «*» & TextBox1.Text & IIf(TextBox1.Text = «», «», «*»)
Call searching
End Sub
Private Sub searching()
On Error Resume Next
Set a = Sheets(«Hoja1»)
Set b = Sheets(«Hoja2»)
uf = b.Range(«A» & Rows.Count).End(xlUp).Row
a.ListBox1.Clear
For i = 2 To uf
strg = b.Cells(i, 3).Value
If UCase(strg) Like UCase(a.TextBox1.Value) & «*» Then
a.ListBox1.AddItem b.Cells(i, 1)
a.ListBox1.List(a.ListBox1.ListCount – 1, 1) = b.Cells(i, 2)
a.ListBox1.List(a.ListBox1.ListCount – 1, 2) = b.Cells(i, 3)
a.ListBox1.List(a.ListBox1.ListCount – 1, 3) = b.Cells(i, 4)
End If
Next i
a.ListBox1.ColumnWidths = «20 pt;120 pt ;120 pt;120 pt»
End Sub
Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets(«Hoja1»).Range(«E2»).Value = «*» & TextBox2.Text & IIf(TextBox2.Text = «», «», «*»)
Call searching1
End Sub
Private Sub searching1()
On Error Resume Next
Set a = Sheets(«Hoja1»)
Set b = Sheets(«Hoja2»)
uf = b.Range(«A» & Rows.Count).End(xlUp).Row
a.ListBox1.Clear
For i = 2 To uf
strg = b.Cells(i, 4).Value
If UCase(strg) Like UCase(a.TextBox2.Value) & «*» Then
a.ListBox1.AddItem b.Cells(i, 1)
a.ListBox1.List(a.ListBox1.ListCount – 1, 1) = b.Cells(i, 2)
a.ListBox1.List(a.ListBox1.ListCount – 1, 2) = b.Cells(i, 3)
a.ListBox1.List(a.ListBox1.ListCount – 1, 3) = b.Cells(i, 4)
‘ Me.ListBox1.List(Me.ListBox1.ListCount – 1, 4) = b.Cells(i, 5)
‘ Me.ListBox1.List(Me.ListBox1.ListCount – 1, 5) = b.Cells(i, 6)
‘ Me.ListBox1.List(Me.ListBox1.ListCount – 1, 6) = b.Cells(i, 7)
‘ Me.ListBox1.List(Me.ListBox1.ListCount – 1, 7) = b.Cells(i, 8)
End If
Next i
a.ListBox1.ColumnWidths = «20 pt;120 pt ;120 pt;120 pt»
End Sub
.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends