NamedRange.Find, méthode

Recherche des informations spécifiques dans le contrôle NamedRange, puis retourne un objet Microsoft.Office.Interop.Excel.Range qui représente la première cellule contenant ces informations.

Espace de noms :  Microsoft.Office.Tools.Excel
Assembly :  Microsoft.Office.Tools.Excel (dans Microsoft.Office.Tools.Excel.dll)

Syntaxe

'Déclaration
Function Find ( _
    What As Object, _
    After As Object, _
    LookIn As Object, _
    LookAt As Object, _
    SearchOrder As Object, _
    SearchDirection As XlSearchDirection, _
    MatchCase As Object, _
    MatchByte As Object, _
    SearchFormat As Object _
) As Range
Range Find(
    Object What,
    Object After,
    Object LookIn,
    Object LookAt,
    Object SearchOrder,
    XlSearchDirection SearchDirection,
    Object MatchCase,
    Object MatchByte,
    Object SearchFormat
)

Paramètres

  • What
    Type : System.Object
    Données à rechercher.Il peut s'agir d'une chaîne ou de tout type de données Microsoft Office Excel.
  • After
    Type : System.Object
    Cellule dans laquelle vous voulez commencer la recherche.Cela correspond à la position de la cellule active lorsqu'une recherche est effectuée à partir de l'interface utilisateur.Notez que After doit être une cellule unique de la plage.Souvenez-vous que la recherche commence après cette cellule ; la cellule spécifiée ne fait pas l'objet d'une recherche tant que la méthode n'est pas revenue à cette cellule.Si vous ne spécifiez pas d'argument, la recherche commence après la cellule située dans l'angle supérieur gauche de la plage.
  • MatchCase
    Type : System.Object
    true si la recherche doit respecter la casse.La valeur par défaut est false.
  • MatchByte
    Type : System.Object
    Utilisé uniquement si vous avez sélectionné ou installé la prise en charge linguistique de jeux de caractères codés sur deux octets.true pour que les caractères codés sur deux octets correspondent uniquement à des caractères codés sur deux octets ; false pour que les caractères codés sur deux octets correspondent aux caractères codés sur un octet équivalents.

Valeur de retour

Type : Microsoft.Office.Interop.Excel.Range
Objet Microsoft.Office.Interop.Excel.Range qui représente la première cellule contenant les informations.

Notes

Cette méthode retourne nullune référence null (Nothing en Visual Basic) si aucune correspondance n'est trouvée.

Cette méthode n'affecte pas la sélection ou la cellule active.

Les paramètres de LookIn, LookAt, SearchOrder et MatchByte sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez pas de valeurs pour ces arguments la prochaine fois que vous appelez la méthode, les valeurs enregistrées sont utilisées. La définition de ces arguments modifie les paramètres de la boîte de dialogue Recherche, et la modification des paramètres dans la boîte de dialogue Recherche modifie les valeurs enregistrées qui sont utilisées si vous omettez les arguments. Pour éviter tout problème, définissez explicitement ces arguments chaque fois que vous utilisez cette méthode.

Vous pouvez utiliser les méthodes FindNext et FindPrevious pour répéter la recherche.

Lorsque la recherche atteint la fin de la plage de recherche spécifiée, elle revient au début de la plage. Pour arrêter une recherche lorsqu'elle revient au début, enregistrez l'adresse de la première cellule trouvée, puis comparez chaque adresse de cellule consécutive trouvée à cette adresse enregistrée.

Paramètres optionnels

Pour plus d'informations sur les paramètres optionnels, consultez Paramètres optionnels dans les solutions Office.

Exemples

L'exemple de code suivant utilise la méthode Find pour rechercher la première cellule contenant la valeur Seashell dans un contrôle NamedRange. L'exemple utilise ensuite les méthodes FindNext et FindPrevious pour rechercher la cellule suivante contenant la valeur Seashell puis retourner à la cellule d'origine. Enfin, il utilise la méthode Cut pour couper le contenu de la première cellule contenant la valeur Seashell et le coller dans la cellule B1.

Cet exemple illustre une personnalisation au niveau du document.

    Private Sub FindValue()
        Me.Range("A1").Value2 = "Barnacle"
        Me.Range("A2").Value2 = "Seashell"
        Me.Range("A3").Value2 = "Star Fish"
        Me.Range("A4").Value2 = "Seashell"
        Me.Range("A5").Value2 = "Clam Shell"

        Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange _
            = Me.Controls.AddNamedRange(Me.Range("A1", "A5"), _
            "namedRange1")

        ' Find the first occurrence of "Seashell".
        Dim Range1 As Excel.Range = namedRange1.Find("Seashell", , , _
            Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns, _
            Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext, _
            False, False, )

        ' Find the next occurrence of "Seashell".
        Range1 = namedRange1.FindNext(Range1)

        ' Return to the first occurrence of "Seashell".
        Range1 = namedRange1.FindPrevious(Range1)

        ' Cut the range with the first "Seashell" and copy it to cell B1.
        Dim namedRange2 As Microsoft.Office.Tools.Excel.NamedRange _
            = Me.Controls.AddNamedRange(Range1, "namedRange2")
        namedRange2.Cut(Me.Range("B1"))
    End Sub

private void FindValue()
{
    this.Range["A1", missing].Value2 = "Barnacle";
    this.Range["A2", missing].Value2 = "Seashell";
    this.Range["A3", missing].Value2 = "Star Fish";
    this.Range["A4", missing].Value2 = "Seashell";
    this.Range["A5", missing].Value2 = "Clam Shell";

    Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
        this.Controls.AddNamedRange(this.Range["A1", "A5"],
        "namedRange1");

    // Find the first occurrence of "Seashell".
    Excel.Range Range1 = namedRange1.Find("Seashell", missing, missing,
        Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns,
        Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext,
        false, false, missing);

    // Find the next occurrence of "Seashell".
    Range1 = namedRange1.FindNext(Range1);

    // Return to the first occurrence of "Seashell".
    Range1 = namedRange1.FindPrevious(Range1);

    // Cut the range with the first "Seashell" and copy it to cell B1.
    Microsoft.Office.Tools.Excel.NamedRange namedRange2 =
        this.Controls.AddNamedRange(Range1, "namedRange2");
    namedRange2.Cut(this.Range["B1", missing]);
}

Sécurité .NET Framework

Voir aussi

Référence

NamedRange Interface

Microsoft.Office.Tools.Excel, espace de noms