IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

La fonction find ne cherche pas dans la 1ere cellule de la plage


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 53
    Points : 34
    Points
    34
    Par défaut La fonction find ne cherche pas dans la 1ere cellule de la plage
    Bonjour

    J'ai une plage de données dans la colonne A :
    A1 = toto
    A2 = tata
    A3 = titi
    A4 = tutu
    A5 = toto
    A6 = tata

    J'utilise la fonction "find" pour effectuer une recherche dans cette plage.
    Le problème est que cette fonction ne semble pas chercher dans la 1ère cellule de la plage fournie.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c = ActiveSheet.Range("A1:A6").Find(What:="toto", LookIn:=xlValues, LookAt:=xlWhole).Address
    MsgBox c
    Dans cette exemple, je recherche la chaine "toto" dans la plage "A1:A6".
    Il devrait me retourner la cellule $A$1 mais il me retourne la suivant qui contient cette chaine, soit $A$5.

    Y a-t-il un paramètre à positionner pour lui demander de chercher dès la 1ere cellule de la plage ?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut Essayez avec une boucle For Each Next
    Bonjour,

    Essayez ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       Dim C As Range
     
          For Each C In [A1:A6]
            If C Like "*toto*" Then
                MsgBox (C.Address)
            End If
        Next C
    Cordialement.

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Pour rester avec la méthode Find
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim C As Range
        With ActiveSheet
            Set C = .Range("A1:A6").Find("toto", .Range("A6"), xlValues, xlWhole)
            If Not C Is Nothing Then MsgBox C.Address
        End With
    Cordialement.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Merci, ça fonctionne !

    Par contre, qu'est-ce qui n'allait pas dans mon code ?
    Dans votre code, la plage semble être précisée 2 fois : une fois avant le find et une fois en tant que paramètre.

  5. #5
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    La réponse est apportée par l'aide sur la méthode Range.find.
    Si tu regardes le paragraphe qui décrit le paramètre Après, tu peux lire
    Cellule après laquelle vous souhaitez commencer la recherche. Rappelez-vous que la recherche commence après cette cellule ; la cellule spécifiée n'est pas recherchée jusqu'à ce que la méthode revienne à cette cellule. Si vous ne spécifiez pas cet argument, la recherche commence après la cellule située dans le coin supérieur gauche de la plage.
    Donc, si tu commences la recherche après A6, tu vas la commencer en A1.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Fonction FIND avec plusieurs valeurs dans une meme cellule.
    Par Manu3100 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 05/07/2015, 18h56
  2. [Batch] FIND ne cherche pas dans l'intégralité du fichier
    Par Enthau dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 14/01/2011, 12h33
  3. VBA / Find ne cherche pas dans la premiere cellule, comment faire ?
    Par manu789 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/03/2008, 06h40
  4. Réponses: 4
    Dernier message: 11/09/2006, 17h46
  5. La fonction CurrentDb() ne fonctionne pas dans une requête
    Par Sébastien Le Goyet dans le forum Access
    Réponses: 8
    Dernier message: 24/11/2005, 17h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo