Macro copia (rango variable) y pega transpuesto

Me explico mejor ... Tengo un archivo con 4 columnas (siempre son 4) y n cantidad de columnas (variable) en la hoja uno, las cuales copio y pego transpuesto en la hoja dos de esta manera:

Hoja 1


                A                       B                    C                       D

       Columna 1      Columna 2     columna 3     columna 4

1       Dato 1                A00                  E.1               Valor 1

2       Dato 1                A00                  E.2               Valor 2

3       Dato 1                A00                 E.3               Valor 3

4       Dato 2                 A00                 E.1               Valor 4

5      Dato 2                A00                  E.2               Valor 5

6      Dato 2                A00                  E.3               Valor 6

7     Dato 3                 A00                  E.1               Valor 7

8     Dato 3                A00                  E.2               Valor 8

9      Dato 3                A00                  E.3               Valor 9

las copio a la hoja2 de la siguiente forma.

Hoja 2

             A                        B                C                 D                E

     Columna 1       Columna 2       E.1              E.2              E.3

1       Dato 1                A00           Valor 1       Valor 2        Valor 3

2       Dato 2                A00           Valor 4       Valor 5        Valor 6

3       Dato 3                A00           Valor 7       Valor 8        Valor 9

... Es decir:

1 ) la columna 1 se repite 3 veces el valor (Dato 1, Dato 2 y Dato 3 están 3 veces cada uno).

2) La columna 2 es el mismo valor siempre.

3) La columna 3 es el encabezado que uso para la hoja dos (En este caso E1, E2 y E3, solo lo transpongo una vez para formar los títulos).

4) La columna 4 la transpongo de tres en tres ( en este caso transpongo:

Valor 1 a valor 3, después

valor 4 a valor 6 y finalmente

valor 7 a valor 9)

... Espero haberme explicado bien, y me puedan ayudar con esta tarea que es bastante tediosa y que con la ayuda de una macro me facilitaría enormemente esta tarea ... Pero la verdad no tengo idea de como hacerlo.

1 Respuesta

Respuesta

H o l a:

Entiendo que los datos en la hoja empiezan en la fila 2.

Te anexo la macro


Sub CopiarTranspuesto()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h2.Cells.Clear
    h1.[A1:B1].Copy h2.[A1]
    h1.[C2:C4].Copy: h2.[C1].PasteSpecial xlValues, Transpose:=True
    '
    j = 2
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row Step 3
        h1.Range("A" & i & ":B" & i).Copy h2.Cells(j, "A")
        h1.Range("D" & i & ":D" & i + 2).Copy
        h2.Cells(j, "C").PasteSpecial xlValues, Transpose:=True
        j = j + 1
    Next
    h2.Select
    [A1].Select
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    MsgBox "fin"
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: CopiarTranspuesto
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas