Se puede separar apellidos y nombres de personas naturales y nombre de personas jurídicas mediante una macro?

Como están la presente es para solicitarles su ayuda, debido a que necesito una macro que sea capaz de separar Primer Apellido - Segundo Apellido - Primer Nombre - segundo Nombre de las personas naturales que están en la tabla de color amarillo al igual de las personas jurídicas que están en la misma tabla y me las organice tal cual como aparecen en la tabla azul que se puede ver en la imagen.

Nota: Los nombre jurídicos los coloque en una celda por aparte después del segundo nombre, siempre y cuando tenga dígito de verificación.

Quedo atento a sus amables colaboraciones, feliz día para todos

1 Respuesta

Respuesta
1

Coloca dentro de un módulo de VBA el código y asígnalo a un botón en tu hoja de Excel, estoy suponiendo que tu tabla (color amarillo) se encuentran en las columnas A, B y C.

Avisa si tienes alguna duda.

Sub Separa_Nombres()

    Range("C2").Activate
    Do While ActiveCell <> ""
        Nombre = ActiveCell.Value
        If ActiveCell.Offset(0, -1).Value <> "" Then
            ActiveCell.Offset(0, 5).Value = Nombre
        Else
            E1 = InStr(1, Nombre, " ")
            E2 = InStr(E1 + 1, Nombre, " ")
            E3 = InStr(E2 + 1, Nombre, " ")
            Apellido1 = Mid(Nombre, 1, E1 - 1)
            E1 = E1 + 1
            Apellido2 = Mid(Nombre, E1, E2 - E1)
            E2 = E2 + 1
            If E3 = 0 Then
                Nombre1 = Mid(Nombre, E2, (Len(Nombre) + 1) - E2)
                Nombre2 = ""
            Else
                Nombre1 = Mid(Nombre, E2, E3 - E2)
                Nombre2 = Mid(Nombre, E3 + 1, 50)
            End If
            ActiveCell.Offset(0, 1) = Apellido1
            ActiveCell.Offset(0, 2) = Apellido2
            ActiveCell.Offset(0, 3) = Nombre1
            ActiveCell.Offset(0, 4) = Nombre2
        End If
        ActiveCell.Offset(1, 0).Activate
    Loop
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas