Modifier par programmation la mise en forme dans les lignes de feuille de calcul contenant des cellules sélectionnées

Vous pouvez modifier la police d’une ligne entière qui contient une cellule sélectionnée afin que le texte soit en gras.

S’applique à : les informations contenues dans cette rubrique s’appliquent aux projets au niveau du document et aux projets de complément VSTO pour Excel. Pour plus d’informations, consultez Fonctionnalités disponibles par application Office lication et le type de projet.

Pour mettre la ligne actuelle en gras et la ligne précédemment en gras normale

  1. Déclarez une variable statique pour effectuer le suivi de la ligne précédemment sélectionnée.

    static int previousRow = 0;
    
  2. Récupérez une référence à la cellule active à l’aide de la ActiveCell propriété.

    Excel.Range currentCell = this.Application.ActiveCell;
    
  3. Stylez la ligne actuelle en gras à l’aide de la EntireRow propriété de la cellule active.

    currentCell.EntireRow.Font.Bold = true;
    
  4. Vérifiez que la valeur actuelle de previousRow n’est pas 0. Un 0 (zéro) indique qu’il s’agit de la première fois par le biais de ce code.

    if (previousRow != 0)
    
  5. Vérifiez que la ligne actuelle est différente de la ligne précédente.

    if (currentCell.Row != previousRow)
    
  6. Récupérez une référence à une plage qui représente la ligne précédemment sélectionnée et définissez cette ligne en gras.

    Excel.Range rng = (Excel.Range)ws.Rows[previousRow];
    rng.EntireRow.Font.Bold = false;
    
  7. Stockez la ligne actuelle afin qu’elle puisse devenir la ligne précédente lors de la passe suivante.

    previousRow = currentCell.Row;
    

    L’exemple suivant montre la méthode complète.

Exemple

// Keep track of the previously bolded row.
static int previousRow = 0;

private void BoldCurrentRow(Excel.Worksheet ws)
{
    // Work with the current active cell.
    Excel.Range currentCell = this.Application.ActiveCell;

    // Bold the current row.
    currentCell.EntireRow.Font.Bold = true; 

    // If a pass has been done previously, make the old row not bold.
    // Make sure previousRow is not 0 (otherwise this is your first pass through).
    if (previousRow != 0)
    
        // Make sure the current row is not the same as the previous row.
        if (currentCell.Row != previousRow)
        {
            Excel.Range rng = (Excel.Range)ws.Rows[previousRow];
            rng.EntireRow.Font.Bold = false;
        }

    // Store the new row number for the next pass.
    previousRow = currentCell.Row;
}