Selected Answer
In essence, I'm afraid there is still no solution but another attempt at small progress which is accumuated in the code below.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim IDs() As String
With Target
If .Address = Range("FormIDNumber").Address Then
IDs = IDList
With .Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:=Join(IDs, ",")
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = "Registration ID"
.ErrorTitle = "Invalid ID"
.InputMessage = "Please select a registration ID."
.ErrorMessage = "Please select an ID from the drop-down list."
.ShowInput = True
.ShowError = True
End With
.Value = IDs(0)
End If
End With
End Sub
Private Function IDList() As String()
Dim Fun() As String
Dim Tbl As ListObject
Dim Arr As Variant
Dim R As Long, i As Long
Set Tbl = Worksheets("Presentation Data").ListObjects("IndexTable")
With Tbl.DataBodyRange
Arr = .Columns(Tbl.ListColumns("Slot ID").Index).Resize(, 2).Value
End With
ReDim Fun(UBound(Arr))
For R = 1 To UBound(Arr)
If Not IsDate(Arr(R, 2)) Then
Fun(i) = Arr(R, 1)
i = i + 1
If i > 24 Then Exit For ' max 255 characters
End If
Next R
If i Then ReDim Preserve Fun(i - 1)
IDList = Fun
End Function
This code deletes any existing validation in named range FormIDNumber and replaces it with a new one. You may like to review the messages. Note that the code limits the number of entries in the list to 24 because teh total list can't be longer than 255 characters. You can adjust the total up or down within the said limit. Note also that the code suggests the first item in the list, over-writing the previous cell value. This is the line of code that does it. .Value = IDs(0). It can be removed.
In order to make this work I have added the table IndexTable to your worksheet Presentation Data. It is referred to by name in the above code, as is its first column. The idea is that you somehow enter the current time in column B (Time), and this causes the Slot ID to be excluded from the list in the form. The result is a list of IDs with their respective Tee-off times which you can use in the rest of your system once you connect it. I have chosen a Date/Time format which you can display in different formats in Entries!C:D.
I hope this helps.