Insertar filas de acuerdo al valor de una celda

Tengo una cantidad de filas en las cuales tengo 4 columnas, en la primera un correlativo, en la segunda un número de factura, en la tercera un identificador y en la cuarta el número de líneas que tiene esa factura que se encuentra en esa línea.

Necesito insertar abajo de cada línea tantas líneas como indique la cuarta columna menos una para que al final obtenga tantas líneas de excel como líneas contenga la factura y además que pueda copiar los datos contenidos en la columna 2 y 3 (número de factura e identificador)

Gracias por la ayuda.

1 respuesta

Respuesta
1

En el siguiente enlace te dejo un ejemplo programado

http://share.cx.com/f46wqS

No olvides finalizar la consulta

Gracias Luis, tu ejemplo cuando lo ejecuto desde tus datos corre de maravilla, pero cuando lo aplico a mi formato directamente me muestra un error que te detallo a continuación.

"Se ha producido el error '1004' en tiempo de ejecución"

"Error en el método AutoFill de la clase Range."

Por otra parte me está llenando las lineas con valores secuenciales y realmente necesito que me haga una copia simple de los datos contenidos en los datos de las celdas y no que al copiar me genere incrementales en cada línea.

Te adjunto enlace a mi archivo para que lo puedas analizar.

https://docs.google.com/file/d/0B9VlrO6PkZWCWEw1SnpBeFRZMDg/edit?usp=sharing

Quedo a la espera de tus noticias.

Acabo de probarlo y no me sale ningún error, y tampoco se copiar los valores secuencialmente sino un copia literal

Ok Luis, respeto y agradezco tu opinión, dejame probar y te mantengo al tanto de lo ocurrido.

He grabado un video con el problema que se me esta presentando, a continuación el link para que lo descargues y veas lo que me esta ocurriendo.

https://docs.google.com/file/d/0B9VlrO6PkZWCem1oNW1ud21icU0/edit?usp=sharing

Gracias nuevamente por la atención y apoyo.

Ok, la macro funciona perfectamente en mi ejemplo pero no en el tuyo. Utiliza esta macro con tus datos:

Sub ejemplo2()
'por luismondelo
Range("a2").Select
Do While ActiveCell.Value <> ""
filas = ActiveCell.Offset(0, 3).Value
ubica = ActiveCell.Address(False, False)
ActiveCell.Offset(1, 0).Select
For x = 1 To filas - 1
ActiveCell.EntireRow.Insert
Next
Range(ubica).Select
Range(ActiveCell, ActiveCell.Offset(0, 2)).Copy
Range(ActiveCell, ActiveCell.Offset(filas - 1, 2)).PasteSpecial xlPasteValues
Range(ubica).Select
ActiveCell.Offset(filas, 0).Select
Loop
Range("a1").Select
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas