Scrolling message 8X8 LED array - Max7221?

fran52:
I think the buffer is one character sent to one 8x8 panel. Then again to shift into the second 8x8 panel. And finally a third time to shift into panel three.

Though I have not tested this particular code version due to lack of components to do so it is just an extension of the code I wrote to drive 2x MAX7219 chips daisy chained together. I had asked someone on this site to test it for me and they said it worked fine for a 4x matrix display. If your having problems with it not scrolling correctly then maybe we need to check how you have the MAX7219 chips wired up. The code and led library expect the chips to be wired like this article Arduino Playground - HomePage pay particular attention to the example schematic with 2x chips wired together Arduino Playground - HomePage to see how the chips are daisy chained using DIN to DOUT and the first chip with DIN from arduino should be the one on the end (right) of the matrix and then they link back towards the left of the matrix.
The code you have is also hard coded to drive 4x displays (I must write a dynamic version sometime). Replace the printBufferLong with this to make it work for 3x displays

void printBufferLong(){
  for (int a=0;a<7;a++){                    
    unsigned long x = bufferLong [a*2];   
    y = (x>>24);                            
    lc.setRow(2,a,y);                       
    y = (x>>16);                            
    lc.setRow(1,a,y);                       
    y = (x>>8);                             
    lc.setRow(0,a,y);                       
  }