|First, a posting tip...|
Please click on the blue line at the end of this post and read the instructions on how to post VBA code in this forum.
As for your question, your code selects E29 and puts the formula in that cell. That's all it's ever going to do since you've hardcoded that range reference. It's going to put the formula in E29 every time you run the macro.
In addition, you do not have to Select a range via VBA to perform an action on it. That's very inefficient. You can almost always perform the operation directly on the range within VBA.
Try this. It inserts a row above the Named range and then uses the Row property of the Named range to determine where to put the formula. Basically you are letting VBA figure out what row to put the formula in instead of telling it to put the formula in a specific cell.
'Insert row above named range
Range("IMP_01").EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
'Put formula in new row
Range("E" & Range("IMP_01").Row - 1).FormulaR1C1 = "=RC[-2]*RC[-1]"
Click Here Before Posting Data or VBA Code ---> How To Post Data or Code.