erreur 'else' without a previous 'if'

Bonjour a tous

J'ai une erreur 'else' without a previous 'if' dans mon code. Apres de multiple recherche sur le net et le forum, je m'en remet a vous pour votre aide

//*******************************************************************bouton const

int Boutons = 8;// broches bouton
int colEtat1 = 0;// derniers états de commutation  [cBoutonsNo] [rBoutonsNo]
  
  void setup()
  {
  //***********************************************************************bouton setup
  
 Serial.begin(9600); // Lancer de série
 
    pinMode(Boutons, INPUT);
    digitalWrite(Boutons, HIGH);
  }
  
  
  void loop()
  {
  // ***********************************************************bouton loop
 
    digitalWrite(Boutons, LOW);
      {     
        if(colEtat1 == 0)// Vérifiez si l'état a changé depuis la dernière fois
        {
          Serial.print(Boutons);
          Serial.println(" ON");
          Keyboard.press(101);
          delay(10);
          Keyboard.release(101); 
          colEtat1 = 1;// Mise à jour dernier état connu de ce commutateur
        }
      } 
      else {
        if(colEtat1 == 1)   // Vérifiez si l'état a changé depuis la dernière fois
        {
          Serial.print(Boutons);
          Serial.println(" OFF");
          colEtat1 = 0;// Mise à jour dernier état connu de ce commutateur
        }
      }
    }
    digitalWrite(Boutons, HIGH);

bonjour,
cherche l'erreur dejà

        }
      } 
      else {
     else {
        if(colEtat1 == 1)   // Vérifiez si l'état a changé depuis la dernière fois
        {
   }
    digitalWrite(Boutons, HIGH);

enfaîte a la basse j'avais fait se code (avec un peu d'aide)

//***********************************************************************************************************************************************************************inter const
int cInters[] = {0, 1};// broches pour les colonnes
int cIntersNo = 2;// Nombre de broches de la colonne
int lInters[] = {4, 5, 6, 7, 8};// broches pour les lignes
int lIntersNo = 5;// Nombre de broches de ligne
int colEtat2[2][5] = {0};// derniers états de commutation [cIntersNo] [lIntersNo]
uint8_t InterCodes[2][5]  { //tableau des caractère
  {'q','b', 'c', 'd', 'e'},
  {'j','k','l',';'} 
};

//**********************************************************************************************************************************************************************bouton const
int cBoutons[] = {2, 3};// broches pour les colonnes
int cBoutonsNo = 2;// Nombre de broches de la colonne
int lBoutons[] = {4, 5, 6, 7, 8};// broches pour les lignes
int lBoutonsNo = 5;// Nombre de broches de ligne
int colEtat1[2][5] = {0};// derniers états de commutation  [cBoutonsNo] [rBoutonsNo]
uint8_t buttonCodes[2][5] = { //tableau des caractère
  {'c','f','g','h','i'},
  {'l','u','v','z'}
  };
  
  

void setup()
{
//********************************************************************************************************************************************************************inter setup
  Serial.begin(9600);  // Lancer de série
  Serial.println("Multiplexed inter Test");
  Serial.println("Setting Column Pins...");  // Définissez la colonne mode Pin
  for(int cInter = 0; cInter < cIntersNo; cInter++)
  {
    pinMode(cInters[cInter], OUTPUT);
    digitalWrite(cInters[cInter], HIGH);
  }
  Serial.println("Setting Row Pins...");// Régler le mode Pin Row
  for(int lInter = 0; lInter < lIntersNo; lInter++)
  {
    pinMode(lInters[lInter], INPUT);
    digitalWrite(lInters[lInter], HIGH);
  }
  Serial.println("Ready!");
 

//********************************************************************************************************************************************************************bouton setup
   Serial.begin(9600); // Lancer de série
  Serial.println("Multiplexed Buttons Test");
  Serial.println("Setting Column Pins..."); // Définir la colonne mode Pin
  for(int cBouton = 0; cBouton < cBoutonsNo; cBouton++)
  {
    pinMode(cBoutons[cBouton], OUTPUT);
    digitalWrite(cBoutons[cBouton], HIGH);
  }
  Serial.println("Setting Row Pins..."); // Régler le mode Pin Row
  for(int lBouton = 0; lBouton < lBoutonsNo; lBouton++)
  {
    pinMode(lBoutons[lBouton], INPUT);
    digitalWrite(lBoutons[lBouton], HIGH);
  }
  Serial.println("Ready!");
  
  


}
void loop()
{
//************************************************************************************************************************************************************************Inter loop
  for(int cInter = 0; cInter < cIntersNo; cInter++)  // Boucle à travers les colonnes
  {
    digitalWrite(cInters[cInter], LOW);
      for(int lInter = 0; lInter < lIntersNo; lInter++)  // Boucle à travers les lignes
    {
      if(digitalRead(lInters[lInter]) == LOW)   // Vérifiez si chaque interrupteur est enfoncé
      {
               if(colEtat2[cInter][lInter] == 0) // Vérifiez si l'état a changé depuis la dernière fois
        {
          Serial.print(cInters[cInter]);
          Serial.print(", ");
          Serial.print(lInters[lInter]);
          Serial.println(" ON");
          Keyboard.press(InterCodes[cInter][lInter]);
          delay(10);
          Keyboard.release(InterCodes[cInter][lInter]); 
          colEtat2[cInter][lInter] = 1;// Mise à jour dernier état connu de ce commutateur
        }
      } 
      else {
        if(colEtat2[cInter][lInter] == 1)        // Vérifiez si l'état a changé depuis la dernière fois
        {
          Serial.print(cInters[cInter]);
          Serial.print(", ");
          Serial.print(lInters[lInter]);
          Serial.println(" OFF");
          Keyboard.press(InterCodes[cInter][lInter]);
          delay(10);
          Keyboard.release(InterCodes[cInter][lInter]);         
          colEtat2[cInter][lInter] = 0;// Mise à jour dernier état connu de ce commutateur
        }
      }
    }
    digitalWrite(cInters[cInter], HIGH);
  }

// ***************************************************************************************************************************************************************************bouton loop
  for(int cBouton = 0; cBouton < cBoutonsNo; cBouton++)  // Boucle à travers les colonnes
  {
    digitalWrite(cBoutons[cBouton], LOW);
    for(int lBouton = 0; lBouton < lBoutonsNo; lBouton++)  // Boucle à travers les ligne
    {
      if(digitalRead(lBoutons[lBouton]) == LOW)// Vérifiez si chaque interrupteur est enfoncé
      {     
        if(colEtat1[cBouton][lBouton] == 0)// Vérifiez si l'état a changé depuis la dernière fois
        {
          Serial.print(cBoutons[cBouton]);
          Serial.print(", ");
          Serial.print(lBoutons[lBouton]);
          Serial.println(" ON");
          Keyboard.press(buttonCodes[cBouton][lBouton]);
          delay(10);
          Keyboard.release(buttonCodes[cBouton][lBouton]); 
          colEtat1[cBouton][lBouton] = 1;// Mise à jour dernier état connu de ce commutateur
        }
      } 
      else {
        if(colEtat1[cBouton][lBouton] == 1)   // Vérifiez si l'état a changé depuis la dernière fois
        {
          Serial.print(cBoutons[cBouton]);
          Serial.print(", ");
          Serial.print(lBoutons[lBouton]);
          Serial.println(" OFF");
          colEtat1[cBouton][lBouton] = 0;// Mise à jour dernier état connu de ce commutateur
        }
      }
    }
    digitalWrite(cBoutons[cBouton], HIGH);
  }
}

Suite a mes première minute de test j'ai remarquer que si un de mes interrupteurs était activer le code affichait 2 valeur lorsque que je fessait une pression sur un BP.
Mis a part cela le code fonctionnait parfaitement, je voudrait donc l'utiliser a présent pour l'utiliser sur un BP poussoir qui celui si aurait une entre pin 8 et l'autre pin sur GND.
Enfaîte j'ai essayer de convertir mon code pour qu'il fonctionne sans les tableaux