Are Four 74HC595 Sift-registers in a row too many?

Nice, thanks a lot!

I found a solution as well, the only weird thing now is, that as soon as I am opening a Serial communication and check for a Serial.available() the whole thing gets messed up completely and goes crazy, meaning the wrong pins get activated, and stay activated and before even sending something over the serial port it sort of starts...
How can the serial communication influence some pins of some registers?

#include <SPI.h>

int ss = 10;

int nrOfRegisters = 4;
byte dataValues[4];

void setup() {
  
  Serial.begin(9600);
  
  pinMode (ss, OUTPUT);
  SPI.begin();
  SPI.setBitOrder(MSBFIRST);
  
  // set all to 0 in order to start
  for(int i = 0; i < nrOfRegisters; i++){
    dataValues[i] = B00000000;
  }
}

void loop(){
  
//   if (Serial.available() > 0) {

    sendToRegister(0, 0);
    
//  }
}

int sendToRegister(int whichRegister, int valueForSolenoid) {
  
  digitalWrite(ss,LOW);
  
  for(int i = 0; i < nrOfRegisters; i++){
    // set all and everything to 0
    dataValues[i] = B00000000;
    // set the pin for the unique register
    if(i == whichRegister){
      dataValues[i] = B00000001;
      if(valueForSolenoid >= 1){
        dataValues[i] = dataValues[i] << valueForSolenoid;
      }
    }
    
    SPI.transfer(dataValues[i]);
    
  }
  
  digitalWrite(ss,HIGH); 
  
  delay(200);
  
  digitalWrite(ss,LOW);
  
  for(int i = 0; i < nrOfRegisters; i++){
    // set all and everything again to 0
    dataValues[i] = B00000000;
    SPI.transfer(dataValues[i]);  // find registers
  }

  digitalWrite(ss,HIGH); 
  
  delay(200);
  
}