I don't think that you can do this without VBA. You can get the last occupied row in Column E using
Lastrow = Cells(Rows.Count, 5).End(xlUp).Row
then have a loop that counts 'backwards' from that row until a grey shaded cell is encountered. click here gives some examples of VBA for identifying colours.