I'm trying to create a Validation List with worksheets's name. First part I add every sheets's name on an array (Sheets are like "January 2018", "February 2018", etc etc), and the second part create the List by joining every part of the array with a coma separator.
The problem is that the ValidationList convert my strings like "January 2018" to date format "Jan-18". And I can't continue my code because don't respect the sheetname...
Here is my code:
Sub RefreshMonth()
Dim xsheet as Worksheets
Dim monthList(20) As String
Dim valList As String
''' This part add every sheet names on an array and work well '''
i = 0
For Each xsheet In ActiveWorkbook.Sheets()
If xsheet.Name Like "*20*" Then
monthList(i) = xsheet.Name
i = i + 1
End If
Next xsheet
'This part create the validation list, where the unwanted conversion happend '''
With Range("B1").Validation
.Delete
.Add Type:=xlValidateList, _
Formula1:=Join(monthList, ",")
End With
And here my ValidationList after the code run with unwanted converted sheetname as date format:

I tried to use CStr() even after the join() to reforce string conversion but for now i didn't found anything working.
Many thanks by advance for help