I have a user form where users enter their vacation days. Once they do, those vacation days (for example January 1, January 2, January 3) are listed each in one cell in a named range and another code is executed to clear the available work time for those dates. Later if the user enters in more vacation days (for example June 1, June 2, June 3), it will just put them in the first cell of the named range and override what was there before. That is totally fine as the code was already executed when the January vacation days were put in, so the January availability was cleared.

However at the end of the year to reset the worksheet for a new year, it reads all the dates that are in that named range and restores the working hours. But since, for example June 1, June 2, and June 3, overrode the January vacation days, the January days will not be reset for the new year.

So what I need is each time a user enters dates into the form, it finds the first available cell in the named range, Vacaydays (G5:G50), and puts them there. SO January 1, 2, and 3 would be in G5, G6, G7. Then when they go in and enter the next vacation days, the first one goes into cell G8, etc.

Here is the part of the code that puts what they enter into the textbox in a new cell in a named range.

 Private Sub VacaySubmit_Click()
  Dim Address As String
  Dim Items() As String
  Dim Count As Integer
  
  
  Dim sDelimiter As String

#If MAC_OFFICE_VERSION >= 15 Then
    sDelimiter = vbCr
  
  #ElseIf Mac Then
    sDelimiter = vbLf
  #Else
   sDelimiter = vbCrLf
  #End If
  
  
Items = Split(Me.TextBox3.Value, sDelimiter)
  Count = UBound(Items) - LBound(Items) + 1
  
  With ThisWorkbook.Sheets("Lists")
    Address = .Range("Vacaydays").Address
    .Range(Address).Resize(Count, 1).Value = Application.Transpose(Items)
  End With