¿Cómo inserto filas con los valores de la anterior automáticamente?

Estoy tratando de insertar filas en una macro, me explico tengo fórmulas en las celdas b6, d6, i6, j6 m6; quiero insertar una fila y que las fórmulas que aparecen en esas celdas se copien en b7, d7, i7, j7, m7 y he aplicado el código

Sub Insertar()
Dim fila As Integer
fila = ActiveCell.Row
If fila < 4 Then
MsgBox ("Ahi no se puede insertar")
Exit Sub
End If
Rows(fila).Insert shift:=xlDown
If fila = 4 Then Rows(fila + 1).Copy Else Rows(fila - 1).Copy
Rows(fila).PasteSpecial Paste:=xlPasteAll
End Sub

Pero no consigo hacer lo que quiero...

2 Respuestas

Respuesta
1

Prueba con esto:

Sub Insertar()
Dim fila As Integer
fila = ActiveCell.Row
If fila < 4 Then
    MsgBox ("Ahi no se puede insertar")
    Exit Sub
End If
Rows(fila).Insert shift:=xlDown
Rows(fila + 1).Copy
Rows(fila).PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
End Sub

Hola, he intentado hacer lo que tu dices pero no tengo éxito me puedes ayudar por favor como hago para enviarte mi fichero

Gracias por tu ayuda

Mi e-mail es [email protected] me puedes dejar un correo donde enviarte mi fichero?

Envíamelo a [email protected]

Respuesta
1

Si quieres copiar las fórmulas de la fila 6 en la celda seleccionada:

Sub CopiarFormulas()
'Por.Dante Amor
    If ActiveCell.Row < 7 Then
        MsgBox "Ahí no se puede insertar", vbExclamation
        Exit Sub
    End If
    Rows(6).Copy Rows(ActiveCell.Row)
End Sub

Si quieres insertar las fórmulas en la fila de arriba de la celda seleccionada

Sub InsertarFormulas()
'Por.Dante Amor
    If ActiveCell.Row < 7 Then
        MsgBox "Ahí no se puede insertar", vbExclamation
        Exit Sub
    End If
    Rows(6).Copy
    Rows(ActiveCell.Row).Insert Shift:=xlDown
    Application.CutCopyMode = False
End Sub

Revisa cuál de las 2 es la que necesitas.


Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas