Macro que copie La cantidad indicada

Tengo este Excel que me ayuda a imprimir las etiquetas de mis productos la forma en la que la uso es la siguiente en la fila A2 “no forzosamente tiene que ser A2 puede ser cualquier fila que este vacía” pongo los datos y al oprimir el botón copiar me copia en las filas vacías las veces que yo oprima el botón La macro que estoy usando es esta.

Sub copiar()

'opcional: verifica que se esté seleccionando rango en A:C

Sheets("PRODUCTOS").Select

ActiveSheet.Unprotect Password:="contra"

If Selection.Row = 1 Or Selection.Column > 3 Or Selection.Count > 3 Then Exit Sub

'ubica la siguiente fila libre y pega la selección

filx = Range("A2").CurrentRegion.Rows.Count + 1

Range("A" & ActiveCell.Row & ":C" & ActiveCell.Row).Copy Destination:=Range("A" & filx)

Sheets("PRODUCTOS").Select

ActiveSheet.Protect Password:="contra"

End Sub

Y este es el cambio que Quiero. En lugar de estar oprimiendo el botón las veces que quiero que copie, lo haga mejor con la cantidad que le ponga en E2. Supongamos que me llego mercancía y puse en el excel todos los productos que llegaron sin cantidades y ahora lo que quiero es que me copie el producto que yo seleccione las veces que yo le indique por ejemplo la fila A4, quiero copiarla 5 veces las cuales se tienen que copiar en la fila que este vacía que en este caso sería A10 y después la fila A7 la quiero copiar 10 veces y esta se tendrán que copiar en la siguiente fila vacía en este caso A15 el chiste es que me deje copiar la fila que yo seleccione las veces que yo le indique en las filas que estén vacías. Espero darme a entender. Gracias

1 respuesta

Respuesta
1

Luego de esta línea:

filx = Range("A2").CurrentRegion.Rows.Count + 1

Reemplaza la que sigue por esta otra:

Range("A" & ActiveCell.Row & ":C" & ActiveCell.Row).Copy Destination:=Range("A" & filx & ":A" & filx + [E2] - 1)

Sdos.

Elsa

http://aplicaexcel.com/macros.htm

https://www.youtube.com/channel/UCSftX2GNQiTDDm0C6H9wEVA 

Quedo muy bien gracias. Nada mas tengo un detalle. La fila A41 me indica el limite de una hoja así que le escribí algo para que brinque esa fila al momento de copiar ya que se supone que la macro busca la fila siguiente que este vacía, lo mismo hice en la fila A81 y las deje bloqueadas para que no me las borrara al momento de hacer la copia pero ahorita ya no me funciona así. Supongamos que quiero copiar 45 veces ahí se va de corrido y escribe en A41 aunque tenga escrito algo así es como quedo la formula que por cierto usted me hizo el favor de hacerme la primera vez que solicite ayuda.

Sub copiar()
'x Elsamatilde
'opcional: verifica que se esté seleccionando rango en A:C
Sheets("PRODUCTOS").Select
ActiveSheet.Unprotect Password:="contraseña"
If Selection.Row = 1 Or Selection.Column > 3 Or Selection.Count > 3 Then Exit Sub
'ubica la siguiente fila libre y pega la selección
filx = Range("A2").CurrentRegion.Rows.Count + 1
Range("A" & ActiveCell.Row & ":C" & ActiveCell.Row).Copy Destination:=Range("A" & filx & ":A" & filx + [E2] - 1)
Sheets("PRODUCTOS").Select
ActiveSheet.Protect Password:="contraseña"

End Sub

El detalle requiere que desarrolle otra macro... por favor deja una nueva consulta en el tablón con las últimas aclaraciones y con mucho gusto retomaré el tema.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas