Ayuda con macro excel para copiar celdas y ordenarlas alfabéticamente solo si existen valores

Buenas Tardes,
Tengo un archivo excel en el cual en una columna copio el primer nombre, en otra el segundo, en otra el primer apellido y finalmente en una ultima columna el segundo apellido. Esto hace que dichos valores se concatenen en otra columna mostrando (apellido 1 apellido 2, nombre 1 nombre 2), luego tengo otra columna donde dichos valores son transformados a mayúsculas.
Lo que quiero es que a través de macros solo se copien los valores sin fórmula en una nueva columna para luego poder ordenarlos alfabéticamente. Lo he estado intentando pero al parecer al ordenar de la A a la Z también me considera las celdas en blanco lo que hace que primero salgan muchas celdas en blanco y se ordenen muy abajo.
Les agradeceré me puedan ayudar. Es decir solo se deberían copiar automáticamente los los valores de las celdas donde existen datos y se deben ignorar las demás para que luego se ordenen de la A a la Z las restantes.
Gracias.

1 respuesta

Respuesta
1

Te anexo la macro.

Supongo que tus datos en mayúsculas están en la columna "F", entonces la macro va a poner los datos ordenados en la columna "G".

Si los datos están en otra columna, cambia las "F" por la columna y las "G" por la columna en donde quieres el resultado.

Sub OrdenarValores()
'Por.Dante Amor
    u = Range("F" & Rows.Count).End(xlUp).Row
    Range("F1:F" & u).Copy
    Range("G1").PasteSpecial Paste:=xlPasteValues
    For i = 1 To u
        If Cells(i, "G") = "" Then Cells(i, "G") = Empty
    Next
    With ActiveSheet.Sort
     .SortFields.Clear: .SortFields.Add Key:=ActiveSheet.Range("G2:G" & u)
     .SetRange ActiveSheet.Range("G1:G" & u): .Header = xlYes: .Apply
    End With
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas