Macro para separar apellidos y nombres

Tengo una base de datos de la siguiente de manera.

Apellidos y nombre        

Pezo Mass, Miler Alex

Acho Sangay, Rosa

Y lo deseo separar en diferentes celdas como se muestra.

Apellidos1  / Apellido2  / Nombre/

Pezo             / Mass            / Miler Alex

Acho         /  Sangay            /   Rosa           

2 respuestas

Respuesta
1

Te anexo la macro, los nombres deberán estar en la columna A, el resultado te lo pondrá en las columnas B, C y D.

Sub SepararNombre()
'Por.Dante Amor
    Range("B:D").ClearContents
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
        dat2 = Split(Cells(i, "A"), ",")
        If UBound(dat2) > 0 Then
            Cells(i, "D") = LTrim(dat2(1))
            esp = InStr(1, dat2(0), " ")
            If esp > 1 Then
                Cells(i, "B") = Left(dat2(0), esp - 1)
                Cells(i, "C") = Mid(dat2(0), esp + 1)
            End If
        Else
            esp = InStr(1, Cells(i, "A"), " ")
            If esp > 1 Then
                Cells(i, "B") = Left(Cells(i, "A"), esp - 1)
                Cells(i, "C") = Mid(Cells(i, "A"), esp + 1)
            End If
        End If
    Next
End Sub

Ejemplo:


Si el nombre tiene un apellido compuesto:

De la Barca Paz, Juan

La macro te pondrá en la primer columna la primer palabra que encuentre, y en la siguiente columna el resto de los datos hasta encontrar la coma. Es difícil saber si es un apellido compuesto y cuál es el apellido1 y cuál es el apellido2.

En otro ejemplo, si el nombre no tiene la coma;

Amor mendiola dante

La macro pondrá la primera palabra en la primer columna y el resto en la siguiente columna, también no se puede saber cuáles son los apellidos y los nombres si no existe la coma. Estos casos tendrás que analizarlos uno por uno y corregirlos manualmente.


Respuesta

Te paso un ejemplo que te mostrará como trabajar con cadenas texto

http://www.programarexcel.com/2013/06/macro-extrae-cadenas-de-texto-o-string.html 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas