Como filtrar una cadena de números por los últimos 4 dígitos

He visto que dominas excel y estoy trabajando en un sistema que escanea una serie de códigos de barras, y tengo una hoja creada para el filtro, pero el problema es que necesito filtrar los números por los últimos 4 dígitos, no quiero poner todo el numero para filtrar... Esta es la macro que tengo. En ella tengo varias opciones, fecha, numero, vuelo, destino y tipo de vuelo, todas las demás opciones las busco sin problemas, incluso combinándolas, pero no puedo hacer la búsqueda por el nunmero si no lo coloco completo... Espero entiendas mi pregunta. Gracias

Sub filtrado()
Range("alldata").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"B7:G8"), CopyToRange:=Range("B11:G11"), Unique:=True
Range("B8:G8").Select
Range("c8"). Activate
Selection. ClearContents
End Sub

1 Respuesta

Respuesta
1

Pon una pantalla de tus datos no entiendo bien lo que quieres, los datos pueden ser inventados.

Hola James... Tengo una hoja que se llama Database y otra que se llama Search. En la Database se registran los siguientes campos. Fecha, Bagtag, Flight, Destination, In/Out Airline (Te proporciono una captura de la hoja Search y otra de la Database con algunos datos para que tengas una idea, la macro de filtrado me permite hacer los filtros rellenando un campo o varios, pero en el caso del bagtag quiero hacer el filtro colocando solo los últimos 4 dígitos del numero. Espero puedas ayudarme... gracias

Esta es la hoja search

y este es el ejemplo de los datos que collecto en la hoja Database

Tal como lo pides no se puede hay limitantes en un filtro avanzado para códigos parciales así que lo que hice fue lo siguiente a tu macro le añadí instrucciones para crear una columna con los datos de los 4 últimos dígitos del código, amplíe el alcance del filtro para incluir esta columna, y en los criterios en la columna H solo escribes estos 4 últimos dígitos y corres la macro el resultado debe ser como el que ves en la pantalla

y esta es la macro

Sub filtrado()
Set datos = Range("alldata")
With datos
    c = .Columns.Count
    r = .Rows.Count
    .Cells(2, c + 1).Resize(r - 1, 1) = "=right(" & .Cells(2, 2).Address(False, False) & ",4)"
    Set datos = .CurrentRegion
End With
datos.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"B7:h8"), CopyToRange:=Range("B11:h11"), Unique:=True
Range("B8:G8").ClearContents
End Sub

¡Gracias! Excelente, pero cuando ejecuto la macro me copia todo en la misma hoja donde escaneo y en la de la dabase... voy a tratar de corregirlo y te dejo saber, pero un millón de gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas