This code is for a module, it will insert your copy range into a column list of names, when a name changes on your list. Note: The copy range to paste must be on another sheet. You must change one Offset row value for the number of rows your copy range will need. Sheet names in the code may need changing. See code for notes. JSW
Sub OnChangeInsCopy()
Dim myRows As Long
Dim myPlace
myRows = ActiveSheet.UsedRange.Rows.Count
'The column range to start checking for name changes.
Worksheets("Sheet1").Range("A2").Select
Do Until Selection.Row = myRows + 1
'Stop loop when column is blank.
If Selection.Value = "" Then
GoTo myEnd
End If
'On name break, paste.
If Selection.Value <> Selection.Offset(-1, 0).Value Then
myPlace = Selection.Address
'Range to paste on break.
'Note: Copy data must be on different sheet!
Sheets("Sheet2").Select
Range("A1:A3").Select
Selection.Copy
Sheets("Sheet1").Select
Worksheets("Sheet1").Range(myPlace).Select
Selection.Insert Shift:=xlDown
'Go to the next row.
myRows = myRows + 1
'The Offset is the # of rows of copy Data + 1.
Selection.Offset(4, 0).Select
Else
Selection.Offset(1, 0).Select
End If
'Do the whole sheet!
Loop
'Stop at end of data.
myEnd:
End Sub