¿Alguna macro para extraer una cadena específica luego de un texto dado?

Tengo una consulta tengo una planilla con 500 filas y quisiera armar una tabla dinámica utilizando un número alfanumerico, el problema que el texto no está ubicado siempre en el mismo lugar pero la palabra común en todas las filas es "importación N." ya que al lado siempre sigue mi número de despacho, por ejemplo si la macro lee está frase en A1 "Operacion de despacho de Importación N. 1900C5789003A" y en a2 dice "recepción de despacho de importacion N. 1900C5789003A" y en A3 "cancelacion por pedido cliente de despacho de Importación N. 1900C5789003A" en la columna B quisiera que me extraiga la porción Alfanumerica "1900C5789003A" y mi idea es que cuando la macro recorra toda la colulmna A y encuentre la cadena "Importacion N." me lo replique en la columna B el número alfanumerico no se si se puede crear una función udf o algo parecido, me encantaría que extraiga si me pueden ayudar

2 respuestas

Respuesta
1

[hola

Si el código alfanumérico es siempre al final va la fórmula

=ESPACIOS(DERECHA(SUSTITUIR(A1;" ";REPETIR(" ";LARGO(A1)));LARGO(A1)))
Respuesta
1

Si quieres filtrar importación N. presente en algunas filas y otras no por ejemplo: en la imagen puedes ver un ejemplo de lo que digo la macro filtra esa palabra en especifico y luego le extra el numero, ojo la macro ignorara aquellas palabras sin acento como importación,

Sub FILTRA()
Set TABLA = Range("A1").CurrentRegion
With TABLA
FILAS = .Rows.Count
    Set TABLA2 = .Columns(2).Resize(FILAS, 1)
    MATRIZ = TABLA2
    .AutoFilter
    .AutoFilter FIELD:=1, Criteria1:="*" & "Importación N." & "*"
    For I = 1 To FILAS
        If Rows(I).Hidden = False Then
            SEPARA = Split(.Cells(I, 1), ".")
            If UBound(SEPARA) = 1 Then MATRIZ(I, 1) = SEPARA(1)
        End If
    Next I
    .AutoFilter
    Range(TABLA2.Address) = MATRIZ
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas