Sandie
Now we're going somewhere. To make this as simple as possible, use a
named list for the DV cell. By this I mean find some place on that sheet or
on another sheet to type in the list. You may already have all this but
just in case you don't, let's do it this way. Name that range (the range of
the list) some name than means something to you. I'll use "TheList" for
now. You can change that in the code as you wish.
When you setup the DV cell, under "Allow:", select "List". Under
"Source" type "=TheList" without the quotes.
Paste this macro in the sheet module of your sheet. To do that, right-click
on the sheet tab, select View Code, and paste this macro into that module.
"X" out of the module to return to your sheet. As written this macro will
fire when the contents of any cell in Column B is changed. The cell that
changed is referred to, in the macro, as the Target cell. If the cell below
the Target cell is empty, the macro will do nothing. Otherwise, the macro
will insert a new blank row below the row of the Target cell, and setup a DV
in the cell below the Target cell. You didn't mention this, but I think you
want the new DV cell selected, so I wrote that into the code also. Try this
out and see what it does. Please post back if you want something changed or
you need more help. HTH Otto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 2 Then
If Not IsEmpty(Target.Offset(1).Value) Then
Application.EnableEvents = False
Target.Offset(1).EntireRow.Insert
With Target.Offset(1).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="=TheList"
End With
Application.EnableEvents = True
Target.Offset(1).Select
End If
End If
End Sub