Saltar al contenido

Pasar datos de una sola columna a varias filas


djsilva2220

Recommended Posts

publicado

Buenas tardes, estoy intentando hacer un código para que cogiendo todos los datos de una columna, me los convierta en varias filas, es decir, en la columna tengo Nombre1, apellidos1, telefono1, Nombre2, apellidos2, telefono2, ... y quiero que cada registro me lo muestre en una fila:

 

Sub make_matrix()
    Dim Arr_1()
    Dim lnumRows As Long, lnumCols As Long
    Dim rngDestRange As Range, rngCellDest As Range
    Dim i As Long, j As Long, x As Long
    Dim lCounter As Long


    If Selection.Count < 4 Then
        MsgBox "Debe seleccionar un rango de por lo menos cuatro celdas", vbExclamation
        Exit Sub
    End If

    lnumRows = Application.InputBox("Cuantas filas en la matriz?", "Filas", , , , , , 2)
    lnumCols = Application.InputBox("Cuantas columnas en la matriz?", "Columnas", , , , , , 2)

    ReDim Arr_1(1 To lnumCols, 1 To lnumRows)

    Set rngCellDest = Application.InputBox("Posicion de la primera celda de la matriz", "Copiar matriz", , , , , , 8)
    Set rngDestRange = rngCellDest.Range(Cells(1, 1), Cells(lnumCols, lnumRows))

    lCounter = 0

    For j = 1 To lnumRows
        For i = 1 To lnumCols
            Arr_1(j, i) = Selection.Item(lCounter + 1)
            lCounter = lCounter + 1
        Next i
    Next j

    rngDestRange.Value = WorksheetFunction.Transpose(Arr_1)


End Sub

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.