Datos desordenados, ordenarlos en hoja o libro nuevo

tengo una hoja de un libro con mucha información, de toda esa información necesito que parte de la información la agrupe en otra hoja o libro de la siguiente forma:

información original

         A          B          C          D          E

1                 10         20                    30

2    F001    3080    1200               4200               

3    E001    4123    4500               5400

5   

6    P004   4100     2130               3800

7    J001   4100     4000                1500

debiera quedar después así

        A          B           C           D           E           F           G
1     10      F001      3080

2     10      E001      4123

3     10      P004      4100

4     10      J001      4100

5     20      F001      1200

6     20      E001      4500

7     20      P004      2130

8     20      J001       4000

9     30      F001      4200

10   30     E001       5400

11   30      P004      3800

12   30     J001       1500

Les agradezco un montón su ayuda, este problema me he estado cabeceando por mucho tiempo y no he podido dar con una solución

1

1 Respuesta

58.350 pts. Ingeniero civil con habilidades en el manejo de las...

Te dejo el código que puede ayudarte, antes de lanzarlo, debes seleccionar el rango que quieres procesar (INCLUIDOS LOS ENCABEZADOS), quedo pendiente de tu éxito. Saludos

Sub explotar()
''Creada por FSerrano en 120222
''Para megadelt en TodoExpertos.com
''Explota un arreglo matricial seleccionado a una lista, todas las filas para cada una de las columnas
''los datos quedan en una hoja nueva llamada "Ordenado"
'Captura la hoja inicial
hojainicial = ActiveSheet.Name
'Añade y renombra la hoja nueva
ActiveWorkbook.Sheets.Add after:=Sheets(ActiveSheet.Index)
ActiveSheet.Name = "Ordenado"
'Vuelve a la hoja inicial
Sheets(hojainicial).Activate
'Bucle para cada uno de los datos
For i = 2 To Selection.Columns.Count
    For j = 2 To Selection.Rows.Count
        actual = Application.WorksheetFunction.CountA(Sheets("Ordenado").Range("A:A"))+ 1
        Sheets("Ordenado").Cells(actual,1) = Sheets(hojainicial).Range(Selection.Cells(1, i).Address).Value
        Sheets("Ordenado").Cells(actual, 2) =Sheets(hojainicial).Range(Selection.Cells(j, 1).Address).Value
        Sheets("Ordenado").Cells(actual, 3) = Sheets(hojainicial).Range(Selection.Cells(j,i).Address).Value
    Next
Next
End Sub

NO OLVIDES FINALIZAR Y PUNTUAR LA PREGUNTA

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas