¿Como seleccionar un menu de opciones desde un listbox

Hola, Bueno mi pregunta quizás sea algo básica, pero no he podido resolverla. Te cuento, tengo una macros en la que selecciono un grupo de entradas y quedan todas guardadas en una fila, y al ingresarlas se van guardando en orden de entrada. El caso es que dentro de las opciones he agregado un "buscar" bajo cierta condiciones, y que me muestre las coincidencias encontradas en una Listbox, hasta ahí no tengo problema. Pero lo que quiero es que al seleccionar las coincidencias en la listbox sea redirigido a esa fila y que aparezca en la macro las opciones que corresponeden a esa fila.
Quizás un ejemplo: Tengo una lista de las letras O, A, E, B, C y R, ordenadas de acuerdo a las entradas de otra categoría numérica (1,2,3,4,5...) con el buscar le pido que me busque todas las coincidencias, es decir por ejemplo que me busque todas las "8", y así en la listbox me entrega las coincidencias algo así:
8A
8A
8O
8C
Esos dos caracteres corresponden a dos columnas diferentes, de un total de 20 columnas en eso de la macro. Entonces al ajustar la búsqueda así me limita el numero de filas que coinciden con mi búsqueda, y lo que quiero es que al seleccionar una coincidencia en la ListBox, todas las opciones (Columnas) que corresponden a esa fila se muestren nuevamente en la macro para poder editarlas y guardarlas. Peor me falta saber como hacer ese paso, el de al seleccionar en la listbox que me envíe a esa fila o que me de las opciones en la macro para editar la fila.
De ante mano muchas gracias.

1 Respuesta

Respuesta
1
Usa esté código:
Columns("C:C"). Select  'Pon la columna o columnas C:F por ejemplo en las que tengas los datos 
    Selection.Find(What:=TEXTO_A_BUSCAR, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    Columns("C:C").Select    Selection.Find(What:="b", After:=ActiveCell, LookIn:=xlFormulas, LookAt _        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _        False, SearchFormat:=False).Activate
Con eso te debería funcionar.
Hola, gracia spor tu atención, pero no es un texto elq ue quiero buscar. Tengo un botón con estas ordenes:
Private Sub CommandButton4_Click()
ListBox1.Clear
Sheets("Horizontes").Select
Range("A5").Select
<span style="white-space: pre;"> </span>Do While ActiveCell <> Empty
<span style="white-space: pre;"> </span>If (ActiveCell = Val(TextBox13)) Then
<span style="white-space: pre;"> </span>ActiveCell.Offset(0, 1).Select
<span style="white-space: pre;"> </span>ListBox1.AddItem ActiveCell + ActiveCell.Offset(0, 1)
<span style="white-space: pre;"> </span>ActiveCell.Offset(0, -1).Select
<span style="white-space: pre;"> </span>End If
<span style="white-space: pre;"> </span>ActiveCell.Offset(1, 0).Select
<span style="white-space: pre;"> </span>Loop
Sheets("Inicio").Select
End Sub
Entonces eso me agrega los datos a la lisbox, y como veras me agrega en una columna de la listbox datos de dos columnas de BD que están en una misma fila. Entones yo quiero que al seleccionar la opción en la listbox se me seleccione toda la fila o un dato (el de la columna A por ejemplo) donde están esos datos.
Pongo ese código en la listbox y me da error, pro que not engo un parámetro de "texto a buscar" según entiendo yo, o quizás estoy cometiendo un error y no entendí muy bien. Te agradecería si me ayudaras, pues me he dado cabezazos ya varios días con este problema :s
De ante mano gracias por tu tiempo.
Ahora no entiendo lo que quieres.
Si usas la opción 'buscar' el cursor se te posicionara el la celda que tenga ese valor. Si usas el adecuado se ubicará en la primera columna.
Para tener el texto a buscar tendrás que leer el valor de donde hagas click en el list box.
Al parecer no me he dado a entender muy bien, mira, ocurre que tengo en el listbox una serie de datos ya ingresados, esos datos están en un par celdas en las columnas B y C de mi excel, el listbox esta en un UserForm, y lo que que quiero hacer es que al pinchar sobre alguno de esos datos de la listbox me lleve automáticamente a la fila en la que se encuentran.
Si no me entiendes aun, no sabría explicarlo mejor, dime y califico con 5 estrellas por tu buena voluntad y paciencia.
Vale, es lo que yo pensaba.
- Puedes hacer dos cosas:
a) Almacenar 'oculto' en el ListBox la fila que corresponde a cada valor, si lo sabes cuando lo rellenes es lo más cómodo por que no hay que buscar nada.
b) Si no tienes el valor debes buscarlo para ello:
1- Necesitas un valor que sea identificativo de la fila ( que no se repita) un código por ejm.
2- Tienes que buscar ese valor a partir del ListBox y aquí o inventas la rueda o usas la función de autosearch de excel para que el cursor se te posicione el la fila. Un avez que esté ya tienes la fila identificada, puedes cambiarle la fuente, el color o simplemente no hacer nada. Excel te lo marca en el lateral.
El código deberás meterlo en el List1_click.
Me intereso eso de meterlo oculto en la listbox, ¿cómo se haría eso?, por que yo ingreso los datos, pero hay alguna manera de que me guarde la ubicación, además, ¿de los datos al mismo tiempo? :o
Incluye el nº de fila como primer valor de la fila Lo puedes concatenar con el resto para poder recuperarlo si lo necesitas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas