Como hacer una macro que permita Repetir filas

Chicos nueva en esta área, les comento: actualmente estoy haciendo un inventario. Lo que requiero es que la línea de caracteristicas y descripción del activo se repita, cuando :

La cantidad de artículos es DIFERENTE de 1 y se repita tantas veces como aparezca en la columna cantidad de artículos.

¿Alguien puede ayudarme?

Agradecida por su ayuda y colaboración de siempre.

1 respuesta

Respuesta
1

Sería algo así:

a = 5
Do While Range("a" & a).Value <> ""
    p = Range("r" & a).Value
    If p > 1 Then
        For b = 1 To p - 1
            Range("a" & a & ":s" & a).Copy
            Range("a" & a).EntireRow.Select
            Range("a" & a).EntireRow.Insert Shift:=xlDown
            Range("a" & a).PasteSpecial xlPasteAll
            a = a + 1
        Next
    End If
    a = a + 1
Loop

Gracias, me ha dado un buen resultado. Sin embargo, ahora al ejecutar la macro por segunda vez me he dado cuenta que  al repetir la cantidad de artículos ( y que queden con la misma cantidad de artículos) si vuelvo a ejecutar la macro, vuelve a repetir.  Se me ocurre,  que la condición incluya:

La cantidad de artículos es DIFERENTE de 1 y se repita tantas veces como aparezca en la columna cantidad de artículos, y luego se reemplace el número de artículos por 1.

La imagen 1: es Al ejecutar la primera vez. 

La imagen 2 es como debería quedar. (Ambas son 26 artículos)


Así si se interrumpe la macro, buscaría INICIAR un número diferente de 1 y no volvería desde el principio.

  Mil gracias, y disculpa tanta molestia.

Claro, lo pensé cuando leí la pregunta pero luego al resolver se me pasó. Aquí tienes cómo podría ser:

a = 5
Do While Range("a" & a).Value <> ""
    p = Range("r" & a).Value
    If p > 1 Then
        For b = 1 To p - 1
            Range("a" & a & ":s" & a).Copy
            Range("a" & a).EntireRow.Select
            Range("a" & a).EntireRow.Insert Shift:=xlDown
            Range("a" & a).PasteSpecial xlPasteAll
            a = a + 1
        Next
    End If
    a = a + 1
Loop
Range("r5:r" & a - 1).Value = 1

La he probado, pero creo que es la misma que la anterior, por que me sigue quedando en las filas repetidas en cantidad de artículos los mismo. :)

Supongo que te has dejado la última línea de código que es dónde paso los valores de la columna "r" a "1"..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas