Macro para buscar cadena de texto

03/10/2017 - 19:08 por Nacho | Informe spam
Buenas tardes,
Esto no sé si se podrá hacer.
En HOJA1 y en el rango a1:b200, tendría un listado de artículos. En la columna A el código y en la columna B el texto.

En HOJA2, columna c y desde la fila 2, necesitaría que fuera escribiendo una cadena de texto y me fuera localizando el dato en HOJA1 columna B y una vez vea que tengo lo que busco, pinchar y se me quede escrito. Y así en todas las filas.

Uf creo que lo estoy explicando muy mal, espero que vuestras mentes brillantes me hayáis entendido.

Muchas gracias de antemano.

Preguntas similare

Leer las respuestas

#1 David_erh
07/10/2017 - 19:36 | Informe spam
Hola, creo que hacer lo que pides directamente sobre una celda no se puede, una opción sería en la HOJA2 marcar la columna C y con la herramienta validación de datos, utilizar la opción "Lista" y seleccionar el rango de la HOJA1, la desventaja es que no podrás ir escribiendo, si no, elegir la cadena dentro de la lista.

Otra Opción un poco mas avanzada, sería en la HOJA2, al inicio de la hoja, insertar un LISTBOX y un BOTÓN, la ventaja del LISTBOX es que a medida que vas escribiendo dentro de el, va buscando y auto complentando; al LISTBOX asignar en su propiedad "ListFillRange" el rango de valores la HOJA1 ( Hoja1!B1:B200 ) y en el BOTON asignar una macro que inserte el valor buscado en la ultima fila vacía de la columna B:

Private Sub CommandButton1_Click()

Dim FilaVacia As Long
FilaVacia = (ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row)+1
Cells(FilaVacia, 3).Value = Combobox1.value

End Sub

Espero que te sirva de ayuda, si deseas me puedes dar tu correo para hacerte llegar una copia del archivo.

Saludos
Respuesta Responder a este mensaje
#2 David_erh
07/10/2017 - 19:39 | Informe spam
Hola, creo que hacer lo que pides directamente sobre una celda no se puede, una opción sería en la HOJA2 marcar la columna C y con la herramienta validación de datos, utilizar la opción "Lista" y seleccionar el rango de la HOJA1, la desventaja es que no podrás ir escribiendo, si no, elegir la cadena dentro de la lista.

Otra Opción un poco mas avanzada, sería en la HOJA2, al inicio de la hoja, insertar un LISTBOX y un BOTÓN, la ventaja del LISTBOX es que a medida que vas escribiendo dentro de el, va buscando y auto complentando; al LISTBOX asignar en su propiedad "ListFillRange" el rango de valores la HOJA1 ( Hoja1!B1:B200 ) y en el BOTON asignar una macro que inserte el valor buscado en la ultima fila vacía de la columna C:

Private Sub CommandButton1_Click()

Dim FilaVacia As Long
FilaVacia = (ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row)+1
Cells(FilaVacia, 3).Value = Combobox1.value

End Sub

Espero que te sirva de ayuda, si deseas me puedes dar tu correo para hacerte llegar una copia del archivo ejemplo.

Saludos

David
Respuesta Responder a este mensaje
#3 Nacho
09/10/2017 - 18:36 | Informe spam
El sábado, 7 de octubre de 2017, 19:39:55 (UTC+2), David_erh escribió:
Hola, creo que hacer lo que pides directamente sobre una celda no se puede, una opción sería en la HOJA2 marcar la columna C y con la herramienta validación de datos, utilizar la opción "Lista" y seleccionar el rango de la HOJA1, la desventaja es que no podrás ir escribiendo, si no, elegir la cadena dentro de la lista.

Otra Opción un poco mas avanzada, sería en la HOJA2, al inicio de la hoja, insertar un LISTBOX y un BOTÓN, la ventaja del LISTBOX es que a medida que vas escribiendo dentro de el, va buscando y auto complentando; al LISTBOX asignar en su propiedad "ListFillRange" el rango de valores la HOJA1 ( Hoja1!B1:B200 ) y en el BOTON asignar una macro que inserte el valor buscado en la ultima fila vacía de la columna C:

Private Sub CommandButton1_Click()

Dim FilaVacia As Long
FilaVacia = (ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row)+1
Cells(FilaVacia, 3).Value = Combobox1.value

End Sub

Espero que te sirva de ayuda, si deseas me puedes dar tu correo para hacerte llegar una copia del archivo ejemplo.

Saludos

David



Buenas tardes David, antes que nada muy agradecido por tu interés.

Te explico, la opción de validar datos no es lo que más se ajusta mi necesidad, ya que tengo la misma lista en pestaña anexa.

La otra opción que me das, hasta donde he podido ver, tiene que ser el texto exacto, ¿no?. Es decir, si busco un vino cuyo nombre es : "Protos Ribera del Duero", debo empezar escribiendo "Protos Ri", ¿no?. Mi idea sería que escribiese por ejemplo "Ribera" y ya las opciones que me salieran fueran todas las que llevaran esa cadena de texto.

No sé si a lo mejor he hecho algo mal.
Gracias y un saludo
Respuesta Responder a este mensaje
#4 David_erh
12/10/2017 - 21:35 | Informe spam
Hola Nacho, de acuerdo a lo que planteas, una solución que se me ocurre es en la HOJA1 en la parte superior insertar un TEXTBOX y un BOTON, crear una macro de manera tal que a medida que se vaya escribiendo llamar al evento Change o al evento KeyUp (luego de presionar una tecla)y que se ejecute un "filtro avanzado", de manera que se muestre en la lista las cadenas de texto que contengan el valor escrito, luego haces hacer un click sobre la celda deseada y luego con el BOTON copiar el contenido de la celda a al HOJA2.

Si ese procedimiento te parece bien, se podría hacer las macros necesarias.

Saludos

David
Respuesta Responder a este mensaje
#5 Nacho
18/10/2017 - 09:05 | Informe spam
El jueves, 12 de octubre de 2017, 21:35:06 (UTC+2), David_erh escribió:
Hola Nacho, de acuerdo a lo que planteas, una solución que se me ocurre es en la HOJA1 en la parte superior insertar un TEXTBOX y un BOTON, crear una macro de manera tal que a medida que se vaya escribiendo llamar al evento Change o al evento KeyUp (luego de presionar una tecla)y que se ejecute un "filtro avanzado", de manera que se muestre en la lista las cadenas de texto que contengan el valor escrito, luego haces hacer un click sobre la celda deseada y luego con el BOTON copiar el contenido de la celda a al HOJA2.

Si ese procedimiento te parece bien, se podría hacer las macros necesarias.

Saludos

David



Hola David, por lo que explicas creo que si, que me solucionaria el objetivo que busco, pero mi nivel es más escaso que lo que requiere tu explicación.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida