Copiar un valor n veces, siendo n una variable

Estoy empezando a trabajar con las macros de VBA y necesito hacer lo siguiente:

Tengo el valor que quiero copiar en la columna H y la cantidad de veces que los quiero copiar en la columna F. La particularidad es que si en la celda H7 tengo el valor 6 ( el que quiero copiar) y en la celda F7 tengo el valor 5 ( la cantidad de veces que lo quiero copiar) en el rango F7:F11 tendría que tener el valor 6 y esto se tendría que extender una hoja de calculo de unas 500 filas.

Esto es lo que tengo de momento.

Sub Macro2()
'
' Macro2 Macro
'
' Acceso directo: Ctrl+Mayús+J
Dim i
Dim j
Dim Y As Integer
j = 0
Y = 7
Seleccion = Cells(6, 6).Select
For j = 1 To 20
    Cantidad = ActiveCell.Offset(1, 0).Value
    Y = 6 + j
    For i = 1 To Cantidad - 1
            x = 8
            Cells(Y, x).Select
            Selection.Copy
            Cells(Y, x).Offset(1, 0).Select
            ActiveCell.PasteSpecial Paste:=xlPasteAll
            Y = Y + 1
    Next i
Seleccion = Cells(6 + j, 6).Select
j = j + 1
Next j
End Sub

He estado intentando desarrollar el código sin muchos resultados, adjunto os envío las fotos de lo que tengo y quiero. Muchas gracias por vuestro tiempo de antemano y un saludo.

1 Respuesta

Respuesta

Prueba con esta macri solo ajusta el rango f5 de la línea inicial a tus datos

Sub copiar_n_veces()
    filas = Range("f" & Rows.Count).End(xlUp).Row
    Set rango = Range("f5").Resize(filas, 3)
    With rango
        For i = 1 To filas
            veces = .Cells(i, 1)
            numero = .Cells(i, 3)
            If veces <> Empty Then
                If i = 1 Then Set datos = .Cells(i, 3).Resize(veces, 1)
                If i > 1 Then Set datos = datos.Cells(datos.Rows.Count + 1, 1).Resize(veces, 1)
                datos.Columns(1) = numero
            End If
        Next i
    End With
    Set datos = Nothing: Set rango = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas