Extraer caracteres

Hola. Tengo una lista con códigos en este estilo 12X34Xabc.
Necesito ir sacando los caracteres que estén después de las X.
Usando Extrae y combinaciones con otras Funciones (Hallar, derecha, etc) se logra para el primer grupo de caracteres, pero como después hay que buscar la siguiente X, ya no sé cómo hacerlo.
Es factible con funciones o una macro, ¿cómo hacerla?
Desde ya gracias
1

1 Respuesta

165.800 pts. Más de 35 años en la informática y más de 20 trabajando...
Por lo que entiendo, creo que buscas un código de este estilo:
Option Explicit
Function extraerParteCodigo(ByVal codigo As String, ByVal separador As String, ByVal numeroOrden As Integer) As String
    Dim n As Integer ' Para buscar el separador
    extraerParteCodigo = ""
    ' Si el número de orden es menor que 1... no nos vale
    If numeroOrden < 1 Then Exit Function
    ' Si no aparece el separador
    If InStr(codigo, separador) = 0 Then
        ' Si el número de orden es el 1 devolvemos el código entero. Sino... no existe
        If numeroOrden = 1 Then extraerParteCodigo = codigo
      Else
        ' Haremos un bucle para buscar el separador e ir quitando la parte que no interese
        Do
            n = InStr(codigo, separador)
            If numeroOrden = 1 Then ' Devolvemos el texto hasta el separador (si lo hay)
                If n = 0 Then n = Len(codigo) + 1 ' Si no hay separador devolvemos todo el texto
                extraerParteCodigo = Left$(codigo, n - 1)
                Exit Do
              Else
                If n > 0 Then ' Quitamos el texto hasta el separador
                    codigo = Right$(codigo, Len(codigo) - n - Len(separador) + 1)
                  Else ' Si no hay separador... era el último y no devolvemos nada
                    Exit Do
                End If
                numeroOrden = numeroOrden - 1 ' Y descontamos 1 del número de orden
            End If
        Loop
    End If
End Function
No sé si te sirvió la solución o no.
Si no tienes más que consultar sobre el tema, por favor, cierra la pregunta para que no me aparezca entre las pendientes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas