UDF > Excel >


_Excel_FilterSet

Installe/d�sinstalle les d�finitions de filtres et filtre la plage

#include <Excel.au3>
_Excel_FilterSet ( $oWorkbook, $vWorksheet, $vRange, $iField [, $sCriteria1 = Default [, $iOperator = Default [, $sCriteria2 = Default]]] )

Param�tres

$oWorkbook Objet classeur Excel
$vWorksheet Nom, indice ou objet feuille de calcul � filtrer. Si la valeur est le mot-cl� Default, la feuille active sera filtr�e
$vRange Un objet plage ou une plage au format $xlA1 pour sp�cifier les colonnes � filtrer.
    Utilisez le mot-cl� Default pour filtrer toutes les colonnes de la feuille de calcul sp�cifi�e
$iField D�calage entier du champ sur lequel vous voulez baser le filtre (le champ le plus � gauche est un champ).
    Si cette valeur est 0, tous les filtres automatiques sur la feuille de calcul seront supprim�s
$sCriteria1 [optionnel] Le crit�re (une cha�ne ou un tableau de cha�nes). Utilisez "=" pour trouver des champs vides, ou utilisez "<>" pour trouver des champs non vides.
    Si cet argument est omis, le crit�re est All.
    Si l'op�rateur est xlTop10Items, Criteria1 sp�cifie le nombre d'�l�ments (par exemple,"10")
$iOperator [optionnel] L'une des constantes de l'�num�ration XlAutoFilterOperator pr�cisant le type de filtre
$sCriteria2 [optionnel] Le deuxi�me crit�re (une cha�ne). Utilisez Criteria1 et Operator pour construire des crit�res compos�s

Valeur de retour

Succ�s: Retourne 1.
�chec: Retourne 0 et d�finit @error <> 0.
@error: 1 - $oWorkbook n'est pas un objet ou n'est pas un objet classeur
2 - Le nom ou l'index $vWorksheet n'est pas valide ou $vWorksheet n'est pas un objet feuille de calcul. @extended contient le code d'erreur COM
3 - $vRange n'est pas valide. @extended contient le code d'erreur COM
4 - Erreur retourn�e par la m�thode Filter. @extended contient le code d'erreur COM

Remarque

Filtre dynamique:
Pour filtrer les colonnes de donn�es, vous d�finissez $iOperator � $xlFilterDynamic et $sCriteria1 � toute valeur de l'�num�ration XlDynamicFilterCriteria.
Voir l'exemple 5 pour plus de d�tails.

En relation

_Excel_FilterGet

Exemples

Exemple 1

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Cr�e un objet Excel et ouvre un classeur
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple", "Erreur lors de la cr�ation de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls", True)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple", "Pressez Enter pour d�finir le premier filtre!")

; *****************************************************************************
; Filtre la feuille de calcul active compl�te sur la colonne 1.
; Montre seulemnt les lignes dont le contenu est > 20 et < 40 dans la colonne sp�cifi�e.
; *****************************************************************************
_Excel_FilterSet($oWorkbook, Default, "A1:E30", 1, ">20", 1, "<40")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 1", "Erreur lors du filtrage des donn�es." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 1", "Filtr� en colonne 'A'. Affiche seulement les lignes avec valeurs >20 et <40.")

; *****************************************************************************
; Ajoute un filtre � la colonne 2.
; Montre seulement les lignes dont le contenu est < 310 dans la colonne sp�cifi�e.
; *****************************************************************************
_Excel_FilterSet($oWorkbook, Default, Default, 2, "<310")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 2", "Erreur lors du filtrage des donn�es." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 1", "Filtre ajout� sur colonne 'B'. Affiche seulement les lignes avec des valeurs <310.")

; *****************************************************************************
; Retire le filtre de la colonne 1.
; *****************************************************************************
_Excel_FilterSet($oWorkbook, Default, Default, 1)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 3", "Erreur lors du filtrage des donn�es." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 1", "Filtre retir� sur la colonne 'A'.")

; *****************************************************************************
; Affiche seulement les valeurs s�lectionn�es (20, 40 et 60) de la colonne 2.
; *****************************************************************************
Local $aShow[] = ["20", "40", "60"]
_Excel_FilterSet($oWorkbook, Default, Default, 2, $aShow, $xlFilterValues)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 4", "Erreur lors du filtrage des donn�es." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 1", "Filtre d�fini sur column 'B' pour afficher seulement les valeurs (20, 40 et 60).")

; *****************************************************************************
; Supprime tous les filtres.
; *****************************************************************************
_Excel_FilterSet($oWorkbook, Default, Default, 0)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 5", "Erreur lors du filtrage des donn�es." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 1", "Tous les filtres sont retir�s.")


Exemple 2

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Cr�e un objet Excel et ouvre un classeur exemple
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple", "Erreur lors de la cr�ation de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls", True)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple", "Press Enter to set the first filter!")

; *****************************************************************************
; Filtre la colonne M par date. Montre toutes les dates en octobre 2013 et 2014.
; 0 ans, 1 mois, 2 jours, 3 heures, 4 minutes, 5 secondes
; *****************************************************************************
Local $aShow[] = [1, "01/10/2017", 1, "01/10/2018"]
_Excel_FilterSet($oWorkbook, Default, Default, 13, Default, $xlFilterValues, $aShow)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 6", "Erreur lors du filtrage des donn�es." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 2", "Colonne 'M' filtr�e par date. Affiche toutes les dates d'Octobre de 2017 et 2018.")

; *****************************************************************************
; Filtre la colonne M par date. Montre toutes les dates de l'an dernier.
; *****************************************************************************
_Excel_FilterSet($oWorkbook, Default, Default, 13, $xlFilterLastYear, $xlFilterDynamic)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 7", "Erreur lors du filtrage des donn�es." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_FilterSet-Exemple 2", "Colonne 'M' filtr�e par date. Affiche toutes les dates de l'ann�e derni�re.")