Copiar una celda y pegar cada “n” repeticiones

Ha pasado mucho tiempo y nuevamente necesito de tu gran ayuda, espero que te encuentres muy bien.

Tengo una hoja de Excel con 2 columnas (A y B), en la columna A tengo “N” registros y en la columna “B” tengo una fórmula empezando por la celda B2 y después de este registro tengo 19 celdas hacia abajo “vacías” y en el siguiente registro tengo otra fórmula diferente y 19 celdas hacia abajo vacías “N” número de veces, lo que requiero hacer es una macro que copie la celda B2 en las 19 celdas vacías y la fórmula que está en la celda B21 la copie en las 19 celdas consecutivas “N” número de veces hasta concluir con los registros de la columna A.

3 Respuestas

Respuesta
3

Sí, ya ha pasado algo de tiempo. Te anexo la macro

Sub Copiar_Celda()
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
        If Cells(i, "B") <> "" Then fila = i Else Cells(fila, "B").Copy Cells(i, "B")
    Next
End Sub

[sal u dos

Respuesta
2

Prueba con esta macro rellenara las filas de la columna B vacías con la fórmula de la celda inmediatamente anterior, la macro llega hasta la cantidad de registros que tengas en la columna A

Sub rellenar_columnas()
f = Range("A" & Rows.Count).End(xlUp).Row
With datos
    For i = 1 To f
        If i = 1 Then fila = Range("b1").End(xlDown).Row
        If i > 1 Then
            fila2 = Range("b" & fila).End(xlDown).Row
            If fila2 = f Then Exit For
            Range("b" & fila & ":b" & fila2 - 1).Formula = Range("b" & fila).Formula
            fila = fila2
        End If
    Next i
End With
End Sub
Respuesta
1

Tu quieres copiar la celda B2 desde A3 hasta B21, ¿Y A21 hasta B41 es correcto?

Ten en cuenta que si ejecutas la macro 2 veces seguidas desde la celda A3 hasta la celda B41 va ser todo igual, porque tu en la primer ejecucion remplazas el contenido de B21 por el de B2

En la siguiente macro se copia B2 desde A3 hasta B20 y B21 desde A22 hasta B41

Sub COPIAR()
    Application.ScreenUpdating = False
    Range("B2").Select
    Selection.Copy
    Range("A3:B20").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("B21").Select
    Selection.Copy
    Range("A22:B41").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
     MsgBox "COPIADO CORRECTO"
Exit Sub
End Sub

Saludos =)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas