Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim shString As String
Dim sh As Worksheet
Dim i As Integer
' restrict monitoring to cell B4
If Intersect(Target, Range("B4")) Is Nothing Then Exit Sub
' build list of sheets
For i = 1 To Worksheets.Count
shString = shString & _
Worksheets(i).Name & _
","
Next 'i
' remove last comma
shString = Left(shString, Len(shString) - 1)
' set up Data Validation list
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
With Target.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:=shString
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
On Error GoTo 0
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Regards, TMS
Bookmarks