Saltar al contenido

Copiar filas con datos varias veces segun valor y numerar copias

publicado

Hola, estoy intentando crear una macro que busque las filas con contenido en una hoja y que haga varias copias de este contenido en otra hoja, numerando el numero de copia. Hasta ahora he conseguido que me encuentre los valores y que copie y pegue pero no que me haga la cantidad de copias y las numere, adjunto codigo por si alguien me puede ayudar y también imagen de datos y resultado final que me gustaría obtener.

Sub Copiar_Filas()

'inicializo la variable j
j = 2
UltimaFila = Cells(Rows.Count, 2).End(xlUp).Row
Dim xCount As Integer
LableNumber:
xCount = Application.InputBox("Copias de Kits", "Total de copias", , , , , , 1)
If xCount < 1 Then
MsgBox "Cantidad de copias insuficiente ,intentar de nuevo", vbInformation, "Zfoam"
GoTo LableNumber
End If
    'comienzo el bucle
    For I = 2 To UltimaFila
        
        'activo la hoja donde están mis datos
        Sheets("Datos").Activate
            
            'compruebo que el valor de la fecha es mayor que 30
            If Cells(I, "B").Value <> 0 Then
                'copio la fila entera
                Range(Cells(I, "A"), Cells(I, "E")).Copy
                'selecciono la hoja donde quiero pegar y después la celda
                Sheets("Filtro").Activate
                    Cells(j, "A").Select
                'pego la fila que hemos copiado
                Rows(I).Resize(xCount).Insert
                'aumento la variable j para que vaya a la siguiente fila de la hoja filtros
                'cuando encuentre una nueva fila que cumple con la condición de edad
                j = j + 1
            End If
    Next


End Sub
 

Datos.PNG

Resultado.PNG

Featured Replies

publicado
  • Autor

Las formulas de la hoja CSV, extraen los datos, la verdad es que si me hacen falta

publicado

Y esos datos que quieres extraer son de la hoja procesos?

publicado
  • Autor

Si, leo las columnas y las comparo con otras de la hoja datos

publicado
  • Autor

A día de hoy lo hago pegando yo las copias del bloque de filas a mano, si son 4 copias lo pego 4 veces seguidas y pongo el número de copia a mano y me funciona

publicado

A ver si puedes explicar el proceso y lo podemos simplificar y automatizar

 

publicado
  • Autor

Voy a intentarlo, hasta ahora, yo rellenaba todas las filas necesarias en la hoja proceso (La hoja Base no existía) una vez rellenada, si necesitaba 4 copias, las copiaba, las pegaba debajo y escribía yo el numero de copia en la columna NºKit, después de esto, la hoja csv compara lo que he escrito en cada fila con la hoja datos para rellenar con el valor transformado.

Mi intención es, rellenar los datos una vez, y si necesito mas copias, que se hagan automáticas porque alguna vez he cometido algún error en el trasiego de copia y pega.

Lo que me has preparado funciona digamos por separado y lo que es el copia y pega va bien, diría que cuando se inserta el bloque inicial es cuando se mueven las formulas de la otra hoja.

Yo estos datos a día de hoy los cojo de otra tabla, si son 100 filas, las copio y las pego como valores, después las duplico tantas veces como me pidan.

Yo pensaba que cuando se pasaban con esta macro de una hoja a otra era lo mismo que cuando yo lo copio y pego.

Ya siento el jaleo, la verdad, ahora mismo no veo la luz.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.