Comment : modifier la mise en forme des lignes de feuille de calcul contenant des cellules sélectionnées par programmationHow to: Programmatically Change Formatting in Worksheet Rows Containing Selected Cells

Vous pouvez modifier la police d’une ligne entière qui contient une cellule sélectionnée afin que le texte est en gras.You can change the font of an entire row that contains a selected cell so that the text is bold.

S’applique à : Les informations contenues dans cette rubrique s’appliquent aux projets de niveau document et aux projets de compléments VSTO pour Excel.Applies to: The information in this topic applies to document-level projects and VSTO add-in projects for Excel. Pour plus d’informations, consultez Fonctionnalités disponibles par type d’application et de projet Office.For more information, see Features Available by Office Application and Project Type.

Pour afficher la ligne actuelle en gras et précédemment les lignes en gras normalTo make the current row bold and the previously bolded row normal

  1. Déclarez une variable statique pour effectuer le suivi de la ligne sélectionnée précédemment.Declare a static variable to keep track of the previously selected row.

    static int previousRow = 0;
    
    Static previousRow As Integer = 0
    
  2. Récupérer une référence à la cellule active à l’aide du Microsoft.Office.Interop.Excel._Application.ActiveCell* propriété.Retrieve a reference to the current cell using the Microsoft.Office.Interop.Excel._Application.ActiveCell* property.

    Excel.Range currentCell = this.Application.ActiveCell;
    
    Dim currentCell As Excel.Range = Me.Application.ActiveCell
    
  3. Style de l’actuelle ligne en gras à l’aide de la Microsoft.Office.Interop.Excel.Range.EntireRow* la propriété de la cellule active.Style the current row bold using the Microsoft.Office.Interop.Excel.Range.EntireRow* property of the active cell.

    currentCell.EntireRow.Font.Bold = true; 
    
    currentCell.EntireRow.Font.Bold = True
    
  4. Vérifiez que la valeur actuelle de previousRow est pas égal à 0.Ensure that the current value of previousRow is not 0. 0 (zéro) indique qu’il s’agit de la première exécution de ce code.A 0 (zero) indicates that this is the first time through this code.

    if (previousRow != 0)
    
    If previousRow <> 0 Then
    
  5. Vérifiez que la ligne actuelle est différente de la ligne précédente.Ensure that the current row is different from the previous row.

    if (currentCell.Row != previousRow)
    
    If currentCell.Row <> previousRow Then
    
  6. Récupérez une référence à une plage qui représente la ligne qui a été précédemment sélectionnée, jeu de cette ligne ne soit ne pas en gras.Retrieve a reference to a range that represents the row that was previously selected, and set that row to not be bold.

    Excel.Range rng = (Excel.Range)ws.Rows[previousRow];
    rng.EntireRow.Font.Bold = false;
    
    Dim rng As Excel.Range = DirectCast(ws.Rows(previousRow), Excel.Range)
    rng.EntireRow.Font.Bold = False
    
  7. Stockez la ligne actuelle afin qu’elle devienne la ligne précédente pour le test suivant.Store the current row so that it can become the previous row on the next pass.

    previousRow = currentCell.Row;
    
    previousRow = currentCell.Row
    

    L'exemple suivant montre la méthode complète.The following example shows the complete method.

ExempleExample

// 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;
}
Private Sub BoldCurrentRow(ByVal ws As Excel.Worksheet)

    ' Keep track of the previously bolded row.
    Static previousRow As Integer = 0

    ' Work with the current active cell.
    Dim currentCell As Excel.Range = Me.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 Then

        ' Make sure the current row is not the same as the previous row.
        If currentCell.Row <> previousRow Then

            Dim rng As Excel.Range = DirectCast(ws.Rows(previousRow), Excel.Range)
            rng.EntireRow.Font.Bold = False
        End If
    End If

    ' Store the new row number for the next pass.
    previousRow = currentCell.Row
End Sub

Voir aussiSee Also

Utilisation des feuilles de calcul Working with Worksheets
Comment : appliquer des Styles à des plages dans les classeurs par programmation How to: Programmatically Apply Styles to Ranges in Workbooks
Comment : copier par programmation les données et la mise en forme des feuilles de calcul How to: Programmatically Copy Data and Formatting across Worksheets
Paramètres optionnels dans les solutions OfficeOptional Parameters in Office Solutions