VBA: Insert row + keep formulas

S42k20

New Member
Joined
Jul 12, 2020
Messages
8
Office Version
  1. 2013
Platform
  1. Windows
Hi all,

I already read some threads in this big forum but didn't find what I am looking for. I hope it is ok to ask for some help on this:

I have a table and a button to click in A1.
If I click this button, a new row shall be inserted below the current active cell including only the above used formulas in every cell of the above row. The values should not be copied.

What I had before is:

VBA Code:
ActiveCell.EntireRow.Copy
ActiveCell.EntireRow.Offset(1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.EntireRow.Offset(1).SpecialCells(xlCellTypeConstants).Clear

But an error occures, when the active cell is then in one of the new created cells "Runtime Error 1004 - No cells found" , which makes sense but what is the clue here :)?

Thanks a lot best regards!
 

Excel Facts

Copy formula down without changing references
If you have =SUM(F2:F49) in F50; type Alt+' in F51 to copy =SUM(F2:F49) to F51, leaving the formula in edit mode. Change SUM to COUNT.
Hi & welcome to MrExcel.
How about
VBA Code:
   With ActiveCell.EntireRow
      .Copy
      .Offset(1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
      On Error Resume Next
      .Offset(1).SpecialCells(xlCellTypeConstants).Clear
      On Error GoTo 0
   End With
 
Upvote 0
Wow :) !! Thank you very much!! It works!

One thing I added to avoid the selection of the row is

Code:
Application.CutCopyMode = False


VBA Code:
   With ActiveCell.EntireRow
      .Copy
      .Offset(1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
       On Error Resume Next
      .Offset(1).SpecialCells(xlCellTypeConstants).Clear
      Application.CutCopyMode = False
      On Error GoTo 0
   End With

would you approve this as clean code?
Thanks again and best regards!
 
Upvote 0
You're welcome & thanks for the feedback.
 
Upvote 0
Sorry to re-open this topic :)
I observed a different behaviour with dropdown list fields in cells:

When there is a dropdown list but with no value selected, it is copied fine.
If there was a value selected before, the dropdown is not being copied at all.

Is there a chance to copy it but as an empty one?

Thank you :)
 
Upvote 0
How about
VBA Code:
   With ActiveCell.EntireRow
      .Copy
      .Offset(1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
       On Error Resume Next
      .Offset(1).SpecialCells(xlCellTypeConstants).Value = ""
      Application.CutCopyMode = False
      On Error GoTo 0
   End With
 
Upvote 0
Perfect :)!! Thanks a lot for your help!
I don't really understand it (how formulas and dropdowns are copied) but I am happy that it is working :)
 
Upvote 0

Forum statistics

Threads
1,223,895
Messages
6,175,257
Members
452,625
Latest member
saadat28

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top