UDF > Excel >


_Excel_RangeFind

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]]]] )

Paramètres

$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)

Valeur de retour

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

Remarque

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.

En relation

_Excel_RangeReplace

Voir aussi

Consultez http://office.microsoft.com/en-us/excel-help/wildcard-characters-HP005203612.aspx.

Exemples

Exemple 1

#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")


Exemple 2

#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")


Exemple 3

#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")


Exemple 4

#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")