Macro para copiar celdas de manera secuencial

Macro para copiar celdas A1:N14 (son 2005 filas y 14 columnas) en otra hoja pero de A1:A14, osea que fila/registro lo transponga/coloque en una columna de manera secuencial. Que copie la celda de A1 hasta N1, coloque el contenido de las celdas en otra hoja iniciando en A1, luego pase la siguiente celda a A2. En total serian 28056 celdas copiadas.

1 respuesta

Respuesta
1
Si los datos de la fila 1 (A1:N1) van a otra hoja en col A, aclarame dónde debieran ir los datos de la fila 2: ¿En la misma col a continuación o en la col B?
Porque si fuese en col B con seleccionar todo el rango y copiar con Pegado Especial, Transponer solucionas el tema.
Saludos. Espero tus aclaraciones
Gracias por contestar tan pronto mi duda, ya implemente una solución parcial. Tengo una hoja de excel con 20004 registros y 29 campos (osea tengo datos de A1:AC20004).
Intente antes de preguntar aquí copiar y pegar especial con transponer pero excel no ejecuto la orden, ya que eran demasiados datos
Esta hoja la dividí en 3 hojas, una parte de los datos se quedaron igual (hoja 1), y otra parte la tenia que transponer (hoja2), pero sin perder la secuencia de donde estaban los datos, osea el orden del registro original, y otra parte (hoja 3) mezcla datos de las otras 2 hojas y tiene datos exclusivos de ella. Todo esto es para luego migrarlo a Access, y luego a MS SQL.
Buscando encontré esta macro, y le fui modificando el contador, la fila y la columna:
Sub Datos1()      'hay un tope de 65534
                           'estos son los periodos 1-65534, 65535-131069, 131070-196604,
                           '196605-280056
Dim x, y, z As Integer
y = 1
z = 1
    For x = 1 To 65534 '280056 es el valor total 83451
        Worksheets("Hoja2").Cells(x, 1).Value = Worksheets("Hoja1").Cells(y, z)
        If z = 14 Then y = y + 1
        If z < 14 Then z = z + 1 Else z = 1
    Next x
End Sub
Me di cuenta que excel solo puede operar hasta con 65536 registros, así que tuve que dividir la secuencia de vaciado de datos por partes.
Todo muy bien, hasta que llegue a una parte que tiene varios datos en secuencia enlazados de 2 hojas y ahora tengo que integrarlos en la misma secuencia en la 3era hoja. Este el orden, copiar en excel para mejor visualización:
Llenado de Celdas Procesos ProcesosValores ProcesosDetalle Datos ejemplo
        Id Id Descripción
1 Procesos col 3 2 CR 151
2 Procesos col 2 10 Sucursal 11
3 17 17 Remisión $36,371.00
4 16 16 Real $36,371.00
5 28 28 Real-Remisión $0.00
6 Procesos col 7 9 Folio 705827
7 25 25 Real (dlls) $22.00
8        18    18    $1,000    $0.00
9        19    19    $500    $9,500.00
10        20    20    $200    $18,200.00
11        21    21    $100    $7,700.00
12        22    22    $50    $950.00
13        23    23    $20    $20.00
14 24 24 Moralla $1.00
15 27 27 Total Real $36,371.00
16 30 30 Remisión-Total Real $0.00
17 29 29 Real-Total Real $0.00
18 1 11 Num. Envases 1
19 Procesos col 5 6 Fecha Venta 31/12/2008
20    null        12    Billetes Falsos   
21    null        15    Comentarios   
Tengo que vaciar todo en procesodetalles. Debo confesar que es la 1era vez que uso VBA y las macros, nunca pensé que fuera tan útil :)
Nuevamente gracias por la atención, debería implementar un botón de donación paypal en su página web!
No entiendo qué me estás consultando... si todavía no lo resolviste podes enviarme tu libro (o esta última parte) y veré si puedo comprenderlo.
Saludos
Elsa
PD) Buena idea lo del botón en la web... aunque prefiero que reciban algo a cambio, como un manual .
Si, la consulta era para cambiar de posición datos de celdas que están ordenados en filas/registros a campos/columnas, osea, hacer una transpuesta. Pero como eran demasiados datos no se podía. Use y modifique el código de arriba y ya lo conseguí, ahora...
Ocupo una instrucción que cambie el formato de una celda de numero a fecha. Esta instrucción la pienso usar en el ciclo for para que me cambie una celda de una columna cada 20 filas.
Yo soy de Mexico, y nunca eh usado el sistema de pago que usa en su página pero si paypal por eso lo sugerí, saludos :)
Para cambiar el formato cada 20 filas, aquí te dejo una rutina de ejemplo:
Sub FormatoFecha()
'empieza en fila 2 de col A
Range("A2").Select
While ActiveCell.Row <= 2000 'ajustar el límite máximo
Selection.NumberFormat = "dd/mm/yyyy;@"
ActiveCell.Offset(20, 0).Select
Wend
End Sub
Saludos. Si este tema quedó resuelto por favor finaliza y comienza una nueva consulta por un nuevo tema.
Elsa
http://es.geocities.com/lacibelesdepunilla/macros]http://es.geocities.com/lacibelesdepunilla/macros[/url&#93;
Si el tema quedó concluido no olvides finalizar la consulta.
Sdos
Elsa
Muchas Gracias por responder tan rapido, definitivamente debería pensar en poner un botón de paypal para poder agradecerle por su ayuda. Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas