Code:
sda var porta.0 'sda est sur le porta.0
scl var porta.1 'scl est sur le porta.1
So you have 16 LEDs on ports A and B, but you also use Port A for I2C communication?

Why not use Port C.3 for SCL and Port C.4 for SDA (PIC 16F877 datasheet pinout p.3) to avoid interfering with your LEDs?
Actually If I understand properly, it is worst than this. If the LED are connected to Ground on the I2C line, they Screw-up the line as they have to be Pulled-high (hi-z) but the LED LOAD it to gnd.

Get rid of the LED on those I/O or, like BobyBert said, move the I2C line elsewhere (it doesn<t need to be on a specific SCL, SDA PIC line as you're using I2CREAD/I2CWRITE who's not using the built in SSP module). You want the I2C line on their own I/O.