Como puedo generar una macro que me copie una fila y la pegue en otra hoja 'n' numero de veces dependiendo de un numero en celda

Quisiera me pudieran ayudar en generar una macro que me permita copiar una línea de hoja1 y pegarla en la Hoja2 pero dependiendo de un dato de la columna (C) se pegue en la hoja2, son varias líneas de la hoja1 las que requiero pegar en la hoja2.

2 respuestas

Respuesta
1

Te anexo la macro

Sub Copiar_Fila()
'Por Dante Amor
    Set h1 = Sheets("Hoja1")    'hoja origen
    Set h2 = Sheets("Hoja2")       'hoja destino
    h2.Rows("2:" & Rows.Count).ClearContents
    k = 2
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        n = h1.Cells(i, "C").Value
        For j = 1 To n
            h2.Range("A" & k & ":B" & k).Value = h1.Range("A" & i & ":B" & i).Value
            k = k + 1
        Next
    Next
    MsgBox "Fin"
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda
Respuesta
1

En la imagen puedes ver el resultado de la macro

y esta es la macro

Sub copiar_datos()
Set h1 = Worksheets("hoja1")
Set h2 = Worksheets("hoja2")
h2.Cells.Clear
Set Datos = h1.Range("a1").CurrentRegion
With Datos
    f = .Rows.Count
    For i = 2 To f
        numero = .Cells(i, 3)
        .Rows(i).Resize(1, 2).Copy
        If i = 2 Then h2.Range("a2").Resize(numero, 2).PasteSpecial xlPasteValues
        If i > 2 Then
            fila = h2.Range("a2").CurrentRegion.Rows.Count
            h2.Range("a2").Rows(fila).Resize(numero, 2).PasteSpecial xlValues
        End If
    Next i
    .Rows(1).Resize(1, 2).Copy: h2.Range("a1").PasteSpecial
    Set Datos = Nothing
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas