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]]] )
$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 |
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 |
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.
#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.")
#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.")