Colocar Registros agrupados en varias columnas en una sola

Todoexpertos soy Arnaldo de Paraguay,

Tengo un archivo de excel que extraigo de una base de datos MongoDB. El mismo agrupa los registros de filas en cada columna. Es decir, en vez de que los registros estén uno debajo de otro, están de lado extiendose por las columnas de excel hacia la derecha. Cada registro ocupa 21 posiciones y se inician en la columna correspondiente a BO que es la numero 67 en excel.

Aquí dejo la forma resultante, teniendo en cuenta que la primera fila es el titulo de las columnas

Gracias y exitos

2
Respuesta
2

No entendí muy bien a qué te refieres con "Cada registro ocupa 21 posiciones"; significa que cada registro tiene 21 columnas, entonces en tu ejemplo solamente pusiste 3 columnas.

Si es así, utiliza lo siguiente, cambia en la macro en la línea "n = 3", cambia el 3 por 21 o por el número de columnas que tenga cada registro.

El resultado quedará en la columna BO iniciando en la fila 6

Sub reagrupar()
'Por.Dante Amor
    j = 6
    n = 3
    For i = Columns("BO").Column To Cells(1, Columns.Count).End(xlToLeft).Column Step n
        For k = 0 To n - 1
            Cells(j, Columns("BO").Column + k) = Cells(2, i + k)
        Next
        j = j + 1
    Next
    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: reagrupar
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

.

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

.

Avísame cualquier duda

.

1 respuesta más de otro experto

Respuesta
1

Prueba con esta macro y comentas

Option Base 1
Sub separa()
Set datos = Range("bo1").CurrentRegion
With datos
    Set datos = .Rows(2).Resize(.Rows.Count - 1, .Columns.Count)
    columnas = .Columns.Count
    totales = .Columns.Count / 3 * .Rows.Count
    ReDim matriz(totales, 3)
    X = 1
    For i = 1 To .Rows.Count
        For j = 1 To .Columns.Count / 3
            If j = 1 Then
                Set area = .Cells(i, 1).Resize(1, 3)
            Else
                Set area = .Cells(i, ((j - 1) * 3) + 1).Resize(1, 3)
            End If
            matriz(X, 1) = area.Cells(1, 1)
            matriz(X, 2) = area.Cells(1, 2)
            matriz(X, 3) = area.Cells(1, 3)
            X = X + 1
        Next j
    Next i
Set destino = .Rows(.Rows.Count + 4).Resize(totales, 3)
With destino
    Range(.Address) = matriz
    .Rows(0).VALUE = datos.Rows(0).Resize(1, 3).VALUE
End With
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas