¿Cómo podría hacer para invertir el orden de 100 columnas en excel, siempre desde la C hasta la CX?

Tengo 100 columnas distribuidas desde la letra C hasta la CX, y necesito que cambie el orden de todas, que pase la columna CX a la intentar de la columna C, y la C a la de la CX, y así con todas, la de la CW a la DE, y la DE a la de la CW. Es decir, suponiendo que fueran números 3,4,5,6,7... 100, que el orden pase a ser, 100,99,98,97... 1. Mediante una macro.

Respuesta
1

Alejandro, utiliza el procedimiento que indica Jesús, pero con la opción de Orden Personalizado. En el cuadro de diálogo seleccionas "Opciones" y en la ventana emergente, "Ordenar de izquierda a derecha", de esta forma estarás ordenando por columnas, en lugar de filas, como es lo habitual.

Estoy intentado hacer todo lo que me decís, he puesto una fila con los valores del 1 al 100 y luego le he dado a todas las opciones que me habéis dicho, pero me pide que especifique en que columna o fila quiero hacer este cambio, le asingo la fila que contiene los 100 valores pero no hace lo que necesito, como mucho me esta cambiando lila 4 con la 6 pero nada más !


:( I'm sorry 

Nada ya he visto el error que cometí! Gracias!

Me alegro que lo hayas resuelto.

Zaludoz

2 respuestas más de otros expertos

Respuesta
1

Insertas una fila nueva la numeras poniendo en columna C un uno, en D un dos, seleccionas las dos celdas y arrastras.

Después, con las celdas seleccionadas ordenas de z a a y a la pregunta ampliar selección dices si.

Ya lo tienes.

Si esto lo tienes que realizar muchas veces, crea una macro con todo el procedimiento.

Hola Jesús Gracias por la respuesta, lo acabo de intentar pero no cambia ninguna columna, ¿se te ocurre alguna otra manera?

Gracias por todo!

Debería funcionar si has hecho todo.

Prueba a realizarlo en las columnas A y B y luego cambias esas dos columnas a su posición

Respuesta
1

Usa esta macro solo cambia el c2 por la celda donde comienzan tus datos

Sub cambiar_orden()
Set datos = Range("c2").CurrentRegion
With datos
    r = .Rows.Count: c = .Columns.Count
    .Columns(c + 3).CurrentRegion.ClearContents
    Set datos2 = .Columns(c + 3).Resize(r, c)
    For i = 1 To c
       If i = 1 Then datos2.Columns(i).Value = datos.Columns(c).Value
        If i > 1 Then datos2.Columns(i).Value = datos.Columns(c - i).Value
    Next i
    .Columns.Value = datos2.Columns.Value
    datos2.ClearContents
End With

Una corrección la macro no se copio bien esta es la macro completa

Sub cambiar_orden()
Set datos = Range("c2").CurrentRegion
With datos
    r = .Rows.Count: c = .Columns.Count
    .Columns(c + 3).CurrentRegion.ClearContents
    Set datos2 = .Columns(c + 3).Resize(r, c)
    For i = 1 To c
       If i = 1 Then datos2.Columns(i).Value = datos.Columns(c).Value
        If i > 1 Then datos2.Columns(i).Value = datos.Columns(c - i).Value
    Next i
    .Columns.Value = datos2.Columns.Value
    datos2.ClearContents
End With
Set datos = Nothing: Set datos2 = Nothing
End Sub

Gracias por la respuesta, me sale eerror en la línea que comienza con el If i > 1, application-deffubed or object-deffined Error !


Saludos

Es la primera vez que alguien menciona ese error, no se que pueda ser, podría ser que la hoja este protegida, ya he corrido varias veces la macro cambiando algunas condiciones para ver si salia ese error y nada, le puse protección a la hoja y es el único modo que me sale error solo que a mi me pone error 1004 y me pide quitar la protección a la hoja para que funcione la macro, la macro si tiene un error que ya corregí pero eso solo te eliminaba columna 2.

Sub cambiar_orden()
Set datos = Range("c2").CurrentRegion
With datos
    r = .Rows.Count: c = .Columns.Count
    .Columns(c + 3).CurrentRegion.ClearContents
    Set datos2 = .Columns(c + 3).Resize(r, c)
    For i = 1 To c
       If i = 1 Then datos2.Columns(i).Value = datos.Columns(c).Value
        If i > 1 Then datos2.Columns(i).Value = datos.Columns(c - i + 1).Value
    Next i
    .Columns.Value = datos2.Columns.Value
    datos2.ClearContents
End With
Set datos = Nothing: Set datos2 = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas