Esta es la macro para modificar toda una columna de golpe. Los nombres empiezan en la segunda fila pero es facíl poner otra modificandolo en la línea
for j=2 to final
Asimismo he hecho que los nombres se lean de la columna A y se escriban en la B. Se puede modificar esto en las dos primeras líneas donde se definen las constantes ColOrig y ColDestin, incluso puede ponerse la misma columna destino que la origen, que a lo mejor e3s eso lo que quieres hacer
Sub IntercambiarNombre()
Const ColOrig = "A"
Const ColDestin = "B"
Dim cadena, car As String
Dim i, j, lon, palabras, final As Integer
final = Range(ColOrig & Rows.Count).End(xlUp).Row
For j = 2 To final
cadena = Cells(j, ColOrig)
cadena = Trim(cadena)
lon = Len(cadena)
If lon >= 5 Then
palabras = 1
i = lon
While (i > 0) And (palabras < 3)
car = Mid(cadena, i, 1)
i = i - 1
If car = " " Then
While (Mid(cadena, i, 1) = " ") And i > 0
i = i - 1
Wend
If i > 0 Then palabras = palabras + 1
End If
Wend
If palabras >= 3 Then
Cells(j, ColDestin) = Mid(cadena, i + 2) + ", " + Left(cadena, i)
End If
End If
Next j
End Sub
Y eso es todo, espero que te sirva y si no entiendes algo pregúntame.