Unir todas las columnas en una columna no importa el orden, de 3 a más COLUMNAS

Tengo una data de correos rechazados y necesito la lista de correos rechazados.

Tengo un archivo que exporte de outlook a excel, las copie a word con pegado especial valores, para lograr que todo el texto del correo se colocara en cada celda (antes venia todo el correo en una celda). Ahora las pegue a excel ....luego realice una macro con movimientos para quitarle todos los datos que no me servian (!"#$%&/()=?¡][{}:; y las separe por espacios.

Ahora tengo varias columnas y necesito juntar en una sola, encontré un ejemplo pero solo aplica para 2 columnas, en mi caso son de 2 a más.

Sub unir_columnas()
'Por.DAM
ci = Columns("B").Column 'columna inicial a unir
cf = Columns("C").Column 'columna final a unir
cd = Columns("A").Column 'columna unión
f = 1 'fila inicial de datos
For i = ci To cf
uf = Cells(Rows.Count, i).End(xlUp).Row
ud = Cells(Rows.Count, cd).End(xlUp).Row + 1
Range(Cells(f, i), Cells(uf, i)).Copy Cells(ud, cd)
Columns("B:C").Select
Selection.Delete Shift:=xlToLeft
Next
End Sub

1 Respuesta

Respuesta

H o l a:

Te anexo la macro.

Pon tus columnas en la "Hoja1", deben empezar en la fila 1.

El resultado quedará en la "Hoja2" en la columna A.

Sub UnirColumnas()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    '
    h2.Cells.Clear
    For i = 1 To h1.Cells(1, Columns.Count).End(xlToLeft).Column
        u1 = h1.Cells(Rows.Count, i).End(xlUp).Row
        u2 = h2.Cells(Rows.Count, "A").End(xlUp).Row + 1
        h1.Range(h1.Cells(1, i), h1.Cells(u1, i)).Copy h2.Cells(u2, "A")
    Next
    MsgBox "Fin"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas