No, you receive loop is wrong in the logic.

Try this for the receive part:

Code:
j=0

While j<24' reception
  
    Serin2 PortA.1,B4800,[wait ("#OK"),ID,RX_Donnee] ' attend reception l'ID suivie des donnees
	
    if ID=32 THEN
        datac[J] = RX_Donnee           ' Transfert de datac vers TX_Donnee
        j=j+1
     endif
Wend					                        ' boucle