WorksheetBase.AutoFilterMode, propriété
Obtient ou définit une valeur qui indique si le filtrage est activé sur la feuille de calcul (c'est-à-dire, si les flèches de déroulement de filtre sont affiché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 Property AutoFilterMode As Boolean
public bool AutoFilterMode { get; set; }
Valeur de propriété
Type : System.Boolean
true si le filtrage est activé sur la feuille de calcul ; sinon, false.
Exceptions
Exception | Condition |
---|---|
COMException | Cette propriété a la valeur true. |
Notes
Vous pouvez affecter à cette propriété la valeur false pour désactiver le filtrage (autrement dit, supprimer les flèches de déroulement de filtre), mais vous ne pouvez pas lui affecter la valeur true. 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é indique uniquement si le filtrage est activé ; elle n'indique pas si des données sont filtrées. Pour déterminer si la feuille de calcul filtre activement les données, utilisez la propriété FilterMode.
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
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.