Bucle para Copiar, pegar con Transpose

23/08/2009 - 05:04 por sebastico | Informe spam
Hola amigos

He encontrado el siguiente código que me permite copiar y ejecutar la
función transpose con miles de datos.

Option Explicit
Sub testme()
Dim wks As Worksheet
Dim DestCell As Range
Dim iRow As Long

Set wks = Worksheets("Sheet1") ' or ActiveSheet

Set DestCell = Worksheets("Sheet2").Range("a1")

With wks
For iRow = 2 To 632
' or last used cell in column A
'for irow = 2 to .Cells(.Rows.Count, "A").End(xlUp).Row
.Cells(iRow, "A").Resize(1, .Range("o1").Column).Copy
DestCell.PasteSpecial _
Paste:=xlPasteAll, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=True
Set DestCell = DestCell.Offset(18, 0)
Next iRow
End With
End Sub

Ese código ordena todos los datos en una sola columna. Sin embargo, debido a
que no se como indicar que solo copie las celdas con datos, el código recorre
las 18 celdas de cada fila con o sin datos (creo que lo hace con .Cells(iRow,
"A").Resize(1, .Range("o1").Column).Copy ), y las copia y pega con el
trasnpose en las 18 celdas de otra columna (con Set DestCell =
DestCell.Offset(18, 0) ).

Desafortunadamente para mi, colocar a mano la primera celda como código
identificador en la celda de la columna contigua me lleva, también, mucho
trabajo y tiempo.

Como lo indico el rango de fila es diferente por ejemplo:

Fila A1 B1 C1 D1 E1 F1 G1 H1 I1 J1 K1 L1 M1 N1 01
Datos 1 4 2 1 8 6 9 2 4 7 1 8 5 1 3

Fila A2 B2 C2 D2 E2 F2 G2 H2 J1
Datos 3 2 7 5 1 4 8 1 5
.
.
.
A107 B107
4 7
.
.
A632 B632 C632 D632 E532
6 9 2 7 5

Necesito que al correr el código con la instrucción que busco con la ayuda
de ustedes, el TRANSPOSE ordene las filas asi:

A B
1 4
1 4
1 2
1 1
1 8
1 6
1 9
1 2
1 4
1 7
1 1
1 8
1 5
1 1
1 3

A B
3 2
3 2
3 7
3 5
3 1
3 4
3 8
3 1
3 5

A B
4 7

A B
6 9
6 2
6 7
6 5


Hasta copiar la fila 631. Obsérvese que la primera celda de cada fila se
copia en las celdas de la columna contigua en este caso en A.

Podrian sugerirme que hacer pues acomodar los datos a mano me lleva más de
un dia y puedo cometer errores, como ya lo he comprobado.

Muchas gracias y Salud2
 

Leer las respuestas

#1 Héctor Miguel
23/08/2009 - 05:48 | Informe spam
hola (...), ?????

por que no pruebas con "la otra" propuesta a tu consulta original ("ciclo con transpose") ?

saludos,
hector.

Preguntas similares