Hi,
Is your issue resolved? If not can you try with following code?
CASE i_vname.
WHEN 'Z5MNTH_LBACK'.
DATA: l_firstday TYPE D,
l_lastday TYPE D.
CLEAR : l_s_range, e_t_range[].
READ TABLE i_t_var_rane INTO loc_var_range with key vnam = '0P_KEYDT'.
l_firstday = loc_var_range-low.
l_firstday+6(2) = '01'. "get first day of the month from key date entered
l_s_range-sign = 'I'.
l_s_range-option = 'EQ'.
DO 5 TIMES.
l_lastday = l_firstday - 1.
l_s_range-low = l_lastday.
APPEND l_s_range TO e_t_range.
l_firstday = l_lastday.
"To keep previous last day, NOT the key date for next previous month last date
l_firstday+6(2) = '01'.
ENDDO.
ENDCASE.
Hope this helps..