Macro para invertir datos en excel vba

Me encontré con un problema

Copié datos del rango de la columna C y le pego con transponer, y lo pega como está en el Rango F2:I2, y no es lo esperado.

Necesito una macro para invertir como muestro los datos resaltados.

Los datos lo tengo f3:i100

2 Respuestas

Respuesta
1

Te anexo unas opciones. Estuve buscando la manera más simple:

Sub Copiar()
'Por.Dante Amor
    Dim arreglo()
    Set celdas = Range("C3:C6")
    ReDim arreglo(celdas.Count)
    n = 0
    For Each celda In celdas
        arreglo(n) = celda.Value
        n = n + 1
    Next
    col = Columns("F").Column
    For j = celdas.Count - 1 To 0 Step -1
        Cells(2, col) = arreglo(j)
        col = col + 1
    Next
End Sub

Sub Copiar2()
'Por.Dante Amor
    Set celdas = Range("C3:C6")
    i = celdas.Cells(1, 1).Row
    f = i + celdas.Count - 1
    col = Columns("F").Column
    For j = f To i Step -1
        Cells(2, col) = Cells(j, celdas.Column)
        col = col + 1
    Next
End Sub

La tercera es la vencida

Sub Copiar3()
'Por.Dante Amor
    Set celdas = Range("C3:C6")
    col = Columns("F").Column + celdas.Count - 1
    For Each celda In celdas
        Cells(2, col) = celda.Value
        col = col - 1
    Next
End Sub
Respuesta
1

Yo siempre soy partidario de buscar soluciones sin macros a poder ser.

En este caso es muy sencillo, bastaría añadirte una columna auxiliar en la cual numerarías los grados de satisfacción por ejemplo poner en la columna A (según el ejemplo S4, S3, S2, S1) luego ordenar la tabla por la columna A de forma creciente, de esta forma las filas quedarían en orden inverso a que tienes en el ejemplo y finalmente hacer la operación que ya has aplicado de copiar trasponiendo.

(

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas