Cherche des concordances de cellules dans une plage ou un classeur et retourne un tableau d'informations sur les cellules trouvées
#include <Excel.au3>
_Excel_RangeFind ( $oWorkbook, $sSearch [, $vRange = Default [, $iLookIn = $xlValues [, $iLookAt = $xlPart [, $bMatchcase = False]]]] )
$oWorkbook | Objet Workbook |
$sSearch | La chaîne de recherche. Peut être une chaîne (les jokers - *?~ - peuvent être utilisés) ou tout autre type de données Excel. Voir Remarques |
$vRange | [optionnel] Un objet plage, une plage au format $xlA1 (chaîne) ou le mot-clé Default pour rechercher dans toutes les feuilles du classeur (par défaut = mot-clé Default) |
$iLookIn | [optionnel] Spécifie où chercher. Peut être toute valeur de l'énumération XLFindLookIn (par défaut = $xlValues) |
$iLookAt | [optionnel] Indique si le texte de recherche doit correspondre à l'ensemble ou à une partie. Peut être n'importe quoi de l'énumération XLLookAt (par défaut = $xlPart) |
$bMatchcase | [optionnel] True = sensible à la casse, Faux = insensibles à la casse (par défaut, False) |
Succès: | Retourne un tableau à deux dimensions indexées à partir de zéro avec les informations suivantes: 0 - Nom de la feuille de calcul 1 - Nom de la cellule 2 - Adresse de la cellule 3 - Valeur de la cellule 4 - Formule de la cellule 5 - Commentaire de la cellule |
Échec: | Retourne 0 et définit @error <> 0. |
@error: | 1 - $oWorkbook n'est pas un objet ou n'est pas un objet classeur 2 - $sSearch est vide 3 - $vRange n'est pas valide. @extended contient le code d'erreur COM 4 - Erreur renvoyée par la méthode Find. @extended contient le code d'erreur COM |
Cette fonction reproduit la fonctionnalité Ctrl+F d'Excel, sauf qu'elle ajoute les cellules commentées dans le résultat.
Excel reconnaît les caractères génériques suivants :
? (point d'interrogation ) - Tout caractère simple
* (astérisque) - N'importe quel nombre de caractères
~ (tilde), suivie par, ?, *, ou ~ - Point d'interrogation, astérisque ou tilde
Lorsque $vRange est spécifié en tant que plage A1 (string) alors la feuille active du classeur $oWorkbook est recherchée.
Consultez http://office.microsoft.com/en-us/excel-help/wildcard-characters-HP005203612.aspx.
#include <Array.au3> #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_RangeFind 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") If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; Trouve toutes les occurrences de la valeur '37000' (concordance partielle) Local $aResult = _Excel_RangeFind($oWorkbook, "37000") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind Exemple 1", "Erreur lors de la recherche dans la plage." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind Exemple 1", "Trouve toutes les occurrences de la valeur '37000' (concordance partielle)." & @CRLF & "Donnée recherchée avec succès.") _ArrayDisplay($aResult, "UDF Excel: _Excel_RangeFind Exemple 1", "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
#include <Array.au3> #include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un exemple de classeur Local $oExcel = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind 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") If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; Trouve toutes les occurrences de la chaîne "=C10*10" dans les formules, avec une concordance exacte Local $aResult = _Excel_RangeFind($oWorkbook, "=C10*10", "A1:G15", $xlFormulas, $xlWhole) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind Exemple 2", "Erreur lors de la recherche de la plage." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind-Exemple 2", "Trouve toutes les occurrences de la chaîne '=C10*10' dans les formules, avec une concordance exacte." & @CRLF & "Donnée recherchée avec succès.") _ArrayDisplay($aResult, "UDF Excel: _Excel_RangeFind Exemple 2", "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
#include <Array.au3> #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_RangeFind 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") If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; Trouve toutes les occurrences de la chaîne "test" dans les commentaires Local $aResult = _Excel_RangeFind($oWorkbook, "test", Default, $xlComments) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind Exemple 3", "Erreur lors de la recherche de la plage." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind-Exemple 3", "Trouve toutes les occurrences de la chaîne 'test' dans les commentaires." & @CRLF & "Donnée recherchée avec succès.") _ArrayDisplay($aResult, "UDF Excel: _Excel_RangeFind Exemple 3", "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
#include <Array.au3> #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_RangeFind-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") If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; Trouve toutes les valeurs avec "Story" à la fin en utilisant des jokers et une concordance exacte Local $aResult = _Excel_RangeFind($oWorkbook, "* Story", Default, Default, $xlWhole) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind-Exemple 4", "Erreur lors de la recherche de la plage." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeFind Exemple 4", "Trouve toutes les valeurs avec 'Story' à la fin en utilisant des jokers et une concordance exacte." & @CRLF & "Donnée recherchée avec succès.") _ArrayDisplay($aResult, "UDF Excel: _Excel_RangeFind Exemple 4", "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")