Macro para buscar y ordenar datos vertical

Necesito ordenar los datos que están horizontal y dejarlos en vertical, tengo un rango de datos A2:D50, donde A2, tiene 3 códigos asociados, estos 3 códigos deben quedar ordenados verticalmente en la columna B y en la columna A repetir código barra. (Todo esto debe quedar en una nueva hoja).

deben quedar como muestra la foto.
http://img13.imageshack.us/img13/2181/barrafinal.jpg

1 respuesta

Respuesta
1
Se entiende perfectamente, excepto si necesitas que la macro te cree la nueva hoja cada vez que se ejecute o solo en una hoja nueva e ir reemplazando los datos cada vez que se ejecute...
Gracias por responder, solo en una hoja nueva e ir reemplazando los datos cada vez que se ejecute la macro.
Compadre, ya termine el código de macros... copiar y pegar en una macros (modulo) y después lo ejecutas... espero que te funcione, por lo menos yo ya lo probé y me funciono en una hoja de A1:D50... si quieres más filas debes aumentar el el "sumar" de 50 a la cantidad que quieras, ahora si quieres aumentar el numero de columnas, eso estaría un poquito más complicado y debería pensarlo un poco mejor...
Chauchera, ojala sea lo que pedías
Sub trasponer()
Dim i, j, sumar, contador, fila As Integer
i = 1
j = 1
contador = sumar = fila = 0
Worksheets("Hoja2").Range("A:D").Clear
Worksheets("Hoja2").Cells(1, 1).Value = Worksheets("Hoja1").Cells(1, 1)
Worksheets("Hoja2").Cells(1, 2).Value = "cod."
For sumar = 0 To 50
If sumar = 0 Then
For contador = 0 To 2
Worksheets("Hoja2").Cells(i + contador + sumar + 1, j + 1).Value = Worksheets("Hoja1").Cells(i + sumar + 1, j + 1 + contador)
If (Worksheets("Hoja2").Cells(i + 1 + contador + sumar, j + 1).Value <> 0) Then
Worksheets("Hoja2").Cells(i + 1 + contador, j).Value = Worksheets("Hoja1").Cells(i + 1 + sumar, j)
End If
Next
Else
For contador = 0 To 2
Worksheets("Hoja2").Cells(i + contador + sumar + fila + 3, j + 1).Value = Worksheets("Hoja1").Cells(i + sumar + 1, j + 1 + contador)
If (Worksheets("Hoja2").Cells(i + contador + sumar + fila + 3, j + 1).Value <> 0) Then
Worksheets("Hoja2").Cells(i + contador + sumar + fila + 3, j).Value = Worksheets("Hoja1").Cells(i + 1 + sumar, j)
End If
Next
fila = fila + 2
End If
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas