Macro copiar y ordenar datos en otra hoja, columnas y filas en distinto orden

Soy nuevo en macros.

Tengo una hoja con datos de personas (27 columnas) con los "títulos" rut, sueldo base, comisión, viático, etc.

Y las filas están los datos de las personas.

Debo hacer otra hoja con

Persona 1

valor_rut, "título" sueldo base valor_sueldo base

valor_rut        "título" comisión              valor_comisión

valor_rut         "título" viático                  valor víatico

etc.

persona 2

valor_rut,       "título" sueldo base         valor_sueldo base

valor_rut        "título" comisión              valor_comisión

valor_rut         "título" viático                  valor víatico

la macro muy ultra básica fue

donde

B10= valor_rut

E9= "título" sueldo base

E10= valor_sueldo_base

F9= "título"  comisión

F10= valor_comision

etc.

'copia rut
Worksheets("Hoja1").Range("B10").Copy Destination:=Worksheets("Hoja2").Range("A2:A27")

Range("E9").Copy Destination:=Worksheets("Hoja2").Range("B2")
Range("E10").Copy Destination:=Worksheets("Hoja2").Range("C2")

Range("F9").Copy Destination:=Worksheets("Hoja2").Range("B3")
Range("F10").Copy Destination:=Worksheets("Hoja2").Range("C3")
Range("G9").Copy Destination:=Worksheets("Hoja2").Range("B4")
Range("G10").Copy Destination:=Worksheets("Hoja2").Range("C4")
Range("H9").Copy Destination:=Worksheets("Hoja2").Range("B5")
Range("H10").Copy Destination:=Worksheets("Hoja2").Range("C5")

persona 2

donde

B11= valor_rut

E9= "título" sueldo base

E11= valor_sueldo_base

F9= "título"  comisión

F11= valor_comision

etc.

'copia rut
Worksheets("Hoja1").Range("B11").Copy Destination:=Worksheets("Hoja2").Range("A28:A53")

Range("E9").Copy Destination:=Worksheets("Hoja2").Range("B28")
Range("E11").Copy Destination:=Worksheets("Hoja2").Range("C28")

Range("F9").Copy Destination:=Worksheets("Hoja2").Range("B29")
Range("F11").Copy Destination:=Worksheets("Hoja2").Range("C29")

Como puedo automatizar esto, que se desplace con un count. Arrow count. Column o algo así y un ciclo que haga esto.

1 respuesta

Respuesta
1

H o l a : Envíame tu archivo con 2 hojas, en la primera hoja me pones como tienes los datos. En la segunda hoja, me pones como quieres los datos. No es necesario que me envíes los datos reales de las personas, lo importante es la localización de los datos, es decir, en qué filas y columnas está la información y en qué filas y columnas quieres el resultado.

Con 3 o 4 ejemplos será suficiente.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “felipe benitez” y el título de esta pregunta.

¡Gracias! ya te envié el mail

H o l a : Te anexo la macro

Sub CopiarDatos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h2.Cells.Clear
    '
    fila = 2
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        h2.Range("A" & fila & ":A" & fila + 25) = h1.Cells(i, "A")
        h1.Range("B1:AA1, B" & i & ":AA" & i).Copy
        h2.Cells(fila, "B").PasteSpecial Paste:=xlPasteAll, Transpose:=True
        fila = fila + 26
    Next
    '
    Application.ScreenUpdating = True
    h2.Select
    MsgBox "Proceso terminado"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas