Here is a quick snippet I wrote up, it is a Worksheet change even, so it must be entered into the Worksheet Code. You can do this by Right Clicking on the Tab/Sheet name > View Code and Paste it there.
Since you did not tell us what columns you wanted to bring down each time, I figured it would be more than, because if it was just one, a simple copy paste would suffice...
So first we have an array, this can be scaled to as many columns as you like, in my example I just used 3 (Columns: 3,6,9)
Code:
Dim lngCols(1 To 3) As Long
lngCols(1) = 3
lngCols(2) = 6
lngCols(3) = 9
Next we are going to check to see if a row was inserted...
Code:
If Target.Columns.Count <> Columns.Count Then Exit Sub
If not, it exits the sub, it does, we are going to do a simple loop though the columns we defined above...
Code:
For i = 1 To UBound(lngCols)
And then we just copy, select paste and done...
Code:
Cells(Target.Offset(-1, 0).Row, lngCols(i)).Copy
Cells(Target.Row, lngCols(i)).Select
ActiveCell.PasteSpecial xlPasteFormulas
And that is pretty much it, if you have any questions or run into any issues, just let me know, and please be sure to back up your excel workbook before running this macro!
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim lngCols(1 To 3) As Long
lngCols(1) = 3
lngCols(2) = 6
lngCols(3) = 9
On Error GoTo ErrorHandler:
If Target.Columns.Count <> Columns.Count Then Exit Sub
For i = 1 To UBound(lngCols)
Cells(Target.Offset(-1, 0).Row, lngCols(i)).Copy
Cells(Target.Row, lngCols(i)).Select
ActiveCell.PasteSpecial xlPasteFormulas
Next i
ErrorHandler:
Application.ScreenUpdating = True
End Sub