Buscador con vba macro excel
Acabo de crear el siguiente código para un userform con un cuadro de texto, un botón y dos listbox en el que quiero su objetivo sea el de realizar búsquedas en aproximadamente 29 hojas y que la búsqueda se proyecte en dos listbox (Debido a que tengo 19 columnas de información, quise probar dividirlas en un listbox de 10 columnas y otra de 9)..::
Private Sub btn_buscar_Click() Dim valor As String valor = txt_Buscar.Value Sheets("Hoja1").Select Cells.Find(what:=valor, after:=ActiveCell, LookIn:=xlValues, lookat _ :=xlPart, searchorder:=xlByColumns, searchdirection:=xlNext, MatchCase:= _ True, searchformat:=False).Activate Cells.FindNext(after:=ActiveCell).Activate ListBox1.ColumnCount = 10 ListBox1.AddItem ListBox1.List(ListBox1.ListCount - 1, 0) = ActiveCell.Value ListBox1.List(ListBox1.ListCount - 1, 1) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox1.List(ListBox1.ListCount - 1, 2) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox1.List(ListBox1.ListCount - 1, 3) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox1.List(ListBox1.ListCount - 1, 4) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox1.List(ListBox1.ListCount - 1, 5) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox1.List(ListBox1.ListCount - 1, 6) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox1.List(ListBox1.ListCount - 1, 7) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox1.List(ListBox1.ListCount - 1, 8) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox1.List(ListBox1.ListCount - 1, 9) = ActiveCell.Value ActiveCell.Offset(0, -9).Select ListBox2.ColumnCount = 9 ListBox2.AddItem ListBox2.List(ListBox1.ListCount - 1, 10) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox2.List(ListBox1.ListCount - 1, 11) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox2.List(ListBox1.ListCount - 1, 12) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox2.List(ListBox1.ListCount - 1, 13) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox2.List(ListBox1.ListCount - 1, 14) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox2.List(ListBox1.ListCount - 1, 15) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox2.List(ListBox1.ListCount - 1, 16) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox2.List(ListBox1.ListCount - 1, 17) = ActiveCell.Value ActiveCell.Offset(0, 1).Select ListBox2.List(ListBox1.ListCount - 1, 18) = ActiveCell.Value ActiveCell.Offset(0, -18).Select Cells.FindNext(after:=ActiveCell).Activate End Sub
Me suceden dos cosas, la primera es que se marca
"ListBox2.List(ListBox1.ListCount - 1, 10) = ActiveCell.Value 'Repetir esta y la siguiente linea para cada columna que se desee tener." arrojando error nº 380 en tiempo de ejecución.
la segunda (Si elimino la informacion del litbox2) es que se marca
"Cells.Find(what:=valor, after:=ActiveCell, LookIn:=xlValues, lookat _
:=xlPart, searchorder:=xlByColumns, searchdirection:=xlNext, MatchCase:= _
True, searchformat:=False).Activate"
Arrojando un error 91 en tiempo de ejecución cuando intento por ejemplo usar "Sheets(Array("hoja1",..."
¿Cómo hago para que realice la busqueda en todas las hojas y que la informacion se muestre debidamente en el listbox? ¿Qué es eso de error 91? ¿Qué comando o codigo debo utilizar para que se realice la busqueda en varias hojas? Agradecido!