RE
C'est à dire que F4 peut être laissé vide ?
Dans ce cas remplace la ligne
.Range("J2").Formula = "=AND(Checkin>=" & CLng(.Range("F4")) & ",Checkin<" & WorksheetFunction.EoMonth(.Range("F4").Value, 0)
Par
If .range("F4") <>"" then .Range("J2").Formula = "=AND(Checkin>=" & CLng(.Range("F4")) & ",Checkin<" & WorksheetFunction.EoMonth(.Range("F4").Value, 0)
J'avais d'ailleurs oublié les .