Filtrar a partir de una cadena de texto

Tengo una hoja de trabajo con 1500 registros el tamaño de la base puede variar, la cual filtro usando la herramienta Filtro y con la opción "contiene", aplicada sobre una columna denominada "descripción" la cual es una cadena de texto cuya palabra clave puede estar al inicio, al final o en medio de dicho cadena, por ejemplo la palabra "Politraumatizado" puede venir como Traumatizado o Politraumatizado o politrauma o trauma. Después de filtrar debo seleccionar todas la columnas y registros a otra hoja para otros procesos, de la misma forma se busca Atropellado, Policontundido, Traumatismo cráneo encefálico, etc, etc,.
¿Cómo puedo generar una macro que busque bajo el criterio "contiene" dentro de la cadena de texto y que copie los registros después de filtrar a otra hoja, para poder continuar con otra palabra clave?

1 Respuesta

Respuesta
1

La siguiente macro hace lo que necesitas.
Pero tendrías que adaptarla a tus características especiales, cómo el número de columnas a copiar, la columna donde tienes el criterio y los nombres de las hojas.
Instrucciones para ejecutar macro
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Para ejecutarla presiona F5
' *****MACRO***********
Sub buscar()
' Por Dam
' Busca por una palabra y copia las filas a otra hoja
'
Application.ScreenUpdating = False
Set horigen = Sheets("DATOS")
Set hdestino = Sheets("BÚSQUEDA")
texto = InputBox(Prompt:="Texto a buscar:")
If texto = "" Then
Exit Sub
End If
hdestino.Cells.Clear
horigen.Select
horigen.AutoFilterMode = False
Range("A1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, _
Criteria1:="=*" & texto & "*", Operator:=xlAnd
horigen.Columns("A:G").Copy Destination:=hdestino.Range("A1")
Application.ScreenUpdating = True
hdestino.Select
ufila = Range("A" & Rows.Count).End(xlUp).Row
If ufila = 1 Then
MsgBox "No encontrá filas con el texto" _
& vbNewLine & texto
Else
MsgBox "Se encontraron " & ufila - 1 & _
" filas con el texto " & vbNewLine & texto
End If
End Sub
' ****************
Revisa el siguiente enlace para que veas como funciona
https://www.dropbox.com/s/hm9noytqm4nbuh2/buscar%20y%20pegar%20en%20otra%20hoja.xls
Saludos. Dam
Si es lo que necesitas, podrías

La pregunta no admite más respuestas

Más respuestas relacionadas