Partager via


ListObject.AutoFilter, propriété

Obtient une table filtrée.

Espace de noms :  Microsoft.Office.Tools.Excel
Assembly :  Microsoft.Office.Tools.Excel (dans Microsoft.Office.Tools.Excel.dll)

Syntaxe

'Déclaration
ReadOnly Property AutoFilter As AutoFilter
AutoFilter AutoFilter { get; }

Valeur de propriété

Type : Microsoft.Office.Interop.Excel.AutoFilter
AutoFilter qui contient une table filtrée.

Exemples

L'exemple de code suivant ajoute un ListObject à la feuille de calcul, qui correspond à un tableau dans Excel. L'exemple remplit ensuite le tableau avec deux lignes de données arbitraires et spécifie un filtre sur le tableau qui élimine toutes les lignes par filtrage dont la première valeur de colonne n'est pas égale à la valeur de chaîne "bb". Ensuite, l'exemple affiche le nombre de filtres actifs trouvés dans le tableau.

Cet exemple illustre une personnalisation au niveau du document.

Private Sub FilterListObject()
    ' Create ListObject control (table) and set table style
    Dim employeeTable As Microsoft.Office.Tools.Excel.ListObject = _
        Me.Controls.AddListObject(Me.Range("A1"), "employeeTable")

    ' Populate table with some data
    Dim rng As Excel.Range
    rng = employeeTable.InsertRowRange
    rng(ColumnIndex:=1).Value2 = "bb"
    rng(ColumnIndex:=2).Value2 = "b1"
    Dim row2 As Excel.ListRow = employeeTable.ListRows.AddEx( _
        AlwaysInsert:=True)
    rng = row2.Range
    rng(ColumnIndex:=1).Value2 = "aa"
    rng(ColumnIndex:=2).Value2 = "a1"

    ' Set a filter        
    employeeTable.Range.AutoFilter(1, "bb")        
    Dim activeFilterCount As Integer = 0
    For Each filter As Excel.Filter In employeeTable.AutoFilter.Filters
        If filter.On = True Then
            activeFilterCount += 1
        End If
    Next
    MessageBox.Show("There are " + activeFilterCount.ToString() _
        + " active filter(s) for table " + employeeTable.Name + ".")

End Sub
private void FilterListObject()
{
    // Create ListObject control (table) and set table style
    Microsoft.Office.Tools.Excel.ListObject employeeTable =
        this.Controls.AddListObject(this.Range["A1"], 
        "employeeTable");

    // Populate table with some data
    Excel.Range rng;
    rng = employeeTable.InsertRowRange;
    ((Excel.Range)(rng[1])).Value2 = "bb";            
    ((Excel.Range)(rng[2])).Value2 = "b1";
    Excel.ListRow row2 = employeeTable.ListRows.AddEx(true);
    rng = row2.Range;
    ((Excel.Range)(rng[1])).Value2 = "aa";
    ((Excel.Range)(rng[2])).Value2 = "a1";

    // Set a filter        
    employeeTable.Range.AutoFilter(1, "bb", 
        Excel.XlAutoFilterOperator.xlFilterValues);        
    int activeFilterCount = 0;
    foreach (Excel.Filter filter in employeeTable.AutoFilter.Filters)
    {
        if (filter.On == true)
        {
            activeFilterCount += 1;
        }
    }
    MessageBox.Show("There are " + activeFilterCount.ToString()
        + " active filter(s) for table " + employeeTable.Name + ".");

}

Sécurité .NET Framework

Voir aussi

Référence

ListObject Interface

Microsoft.Office.Tools.Excel, espace de noms