Partager via


WorksheetBase.FilterMode, propriété

Obtient une valeur qui indique si la feuille de calcul filtre effectivement les données.

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

Syntaxe

'Déclaration
Public ReadOnly Property FilterMode As Boolean
public bool FilterMode { get; }

Valeur de propriété

Type : System.Boolean
true si la feuille de calcul filtre effectivement les données ; sinon, false.

Notes

Pour déterminer si le filtrage est actuellement permis (c'est-à-dire, si les flèches de déroulement de filtre sont affichées dans la feuille de calcul), utilisez la propriété AutoFilterMode.

Pour permettre le filtrage et créer une liste filtrée, utilisez la méthode AutoFilter d'un objet Range ou utilisez la méthode AutoFilter d'un objet NamedRange.

Cette propriété a la valeur true si la feuille de calcul contient une liste filtrée dans laquelle sont masquées des lignes.

Exemples

L'exemple de code suivant crée une liste filtrée de fruits dans un Range, puis utilise la propriété AutoFilter pour afficher les critères de filtre pour la liste. L'exemple invite ensuite l'utilisateur à désactiver le filtre en utilisant la propriété AutoFilterMode, et enfin utilise la propriété FilterMode pour afficher si la feuille de calcul a une liste filtrée.

Cet exemple illustre une personnalisation au niveau du document.

Private Sub ActivateAutoFilter()
    Me.Range("A1").Value2 = "Fruits"
    Me.Range("A2").Value2 = "Banana"
    Me.Range("A3").Value2 = "Apple"
    Me.Range("A4").Value2 = "Banana"
    Me.Range("A5").Value2 = "Orange"
    Me.Range("A6").Value2 = "Apple"
    Me.Range("A7").Value2 = "Orange"

    Dim NamedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
        Me.Controls.AddNamedRange(Me.Range("A1", "A7"), "NamedRange1")

    NamedRange1.AutoFilter(1, "Apple", Excel.XlAutoFilterOperator.xlAnd, _
        VisibleDropDown:=True)

    MsgBox("The current criteria for the AutoFilter is: " & _
        Me.AutoFilter.Filters(1).Criteria1.ToString())

    If Me.AutoFilterMode Then
        If DialogResult.Yes = MessageBox.Show("Would you like to " & _
            "turn off the filter?", "Example", MessageBoxButtons.YesNo) Then
            Me.AutoFilterMode = False
        End If
    End If

    If Me.FilterMode Then
        MsgBox("The worksheet has a filtered list.")
    Else
        MsgBox("The worksheet does not have a filtered list")
    End If
End Sub
private void ActivateAutoFilter()
{
    this.Range["A1"].Value2 = "Fruits";
    this.Range["A2"].Value2 = "Banana";
    this.Range["A3"].Value2 = "Apple";
    this.Range["A4"].Value2 = "Banana";
    this.Range["A5"].Value2 = "Orange";
    this.Range["A6"].Value2 = "Apple";
    this.Range["A7"].Value2 = "Orange";

    Microsoft.Office.Tools.Excel.NamedRange NamedRange1 =
        this.Controls.AddNamedRange(this.Range["A1", "A7"],
        "NamedRange1");

    NamedRange1.AutoFilter(1, "Apple",
       Excel.XlAutoFilterOperator.xlAnd, true);

    MessageBox.Show("The current criteria for the AutoFilter is: " +
        this.AutoFilter.Filters[1].Criteria1.ToString());

    if (this.AutoFilterMode)
    {
        if (DialogResult.Yes == MessageBox.Show("Would you like to " +
            "turn off the filter?", "Example", MessageBoxButtons.YesNo))
        {
            this.AutoFilterMode = false;
        }
    }

    if (this.FilterMode)
    {
        MessageBox.Show("The worksheet has a filtered list.");
    }
    else
    {
        MessageBox.Show("The worksheet does not have a filtered list");
    }
}

Sécurité .NET Framework

Voir aussi

Référence

WorksheetBase Classe

Microsoft.Office.Tools.Excel, espace de noms