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

Macros et VBA Excel Discussion :

recherche un mot dans une formule excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 788
    Points : 182
    Points
    182
    Par défaut recherche un mot dans une formule excel
    Bonjour à tous.

    Je ne comprends pas pourquoi la ligne de code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each c In ActiveSheet.UsedRange.SpecialCells(xlFormulas)
    If c.Formula Like "*LOOKUP*" Then
    MsgBox c.Formula
    End If
    Trouve le mot équivalent “RECHERCHE“ dans la formule EXCEL ci-dessous :
    =RECHERCHE(A2;'[Clients.xls]BD CLIENTS'!$A:$A;'[Clients.xls]BD CLIENTS'!$D:$D)

    Ne trouve pas le mot équivalent “RECHERCHE“ dans la formule EXCEL ci-dessous :
    =SI(A2=0;"";RECHERCHE(A2;'[Clients.xls]BD CLIENTS'!$A:$A;'[Clients.xls]BD CLIENTS'!$D:$D))

    Je ne trouve pas d’explication ?

    Pourriez-vous m’aider svp, merci d’avance.

    Cordialement modus57.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut modus57 et le forum
    Parce qu'il est feignant ?
    demande plutôt de rechercher le mot réel que tu as dans ta cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each c In ActiveSheet.UsedRange.SpecialCells(xlFormulas)
    If c.FormulaLocal Like "*RECHERCHE*" Then
    MsgBox c.FormulaLocal
    End If
    A+

  3. #3
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Bonjour Gorfael et bonjour Modus,

    je dispose d'Excel2003 et ton code fonctionne en y rajoutant quand même un Next après le End If (même si la formule contient RECHERCHEV)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub cherche()
    For Each c In ActiveSheet.UsedRange.SpecialCells(xlFormulas)
       If c.Formula Like "*LOOKUP*" Then
          MsgBox c.Formula
       End If
    Next
    End Sub
    Eventuellement peux-tu essayer avec la syntaxe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If c.Formula Like "*" & "LOOKUP" & "*" Then

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 788
    Points : 182
    Points
    182
    Par défaut
    Bonjour Gorfael, ouisansdoute.

    Merci pour vos réponses.

    J'ai testé les 2 solutions.

    La procédure arrive a traitée la formule EXCEL ci-dessous :
    =RECHERCHE(A2;'[Clients.xls]BD CLIENTS'!$A:$A;'[Clients.xls]BD CLIENTS'!$D:$D)
    Et modifie la formule comme suit:
    =INDEX(Feuil3!B:B;EQUIV($A$2;Feuil3!$A:$A;0))

    Mais n'arrive pas traitée la formule EXCEL ci-dessous :
    =SI(A2=0;"";RECHERCHE(A2;'[Clients.xls]BD CLIENTS'!$A:$A;'[Clients.xls]BD CLIENTS'!$D:$D))
    Et affiche le Message d’Erreur 1004
    "Erreur définie par l’application ou par l’objet"

    Je joins un fichier pour mieux comprendre le problème.

    A +
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    891
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 891
    Points : 831
    Points
    831
    Par défaut A tout hazard...
    Cherche la chaine avec la fonction "InStr()".

    Syntaxe

    InStr([start, ]string1, string2[, compare])

    La syntaxe de la fonction InStr comprend les arguments suivants :

    Élément Description
    start Facultatif. Expression numérique qui définit la position de départ de chaque recherche. Si cet argument est omis, la recherche commence au premier caractère. Si l'argument start contient une valeur de type Null, une erreur se produit. L'argument start est obligatoire si l'argument compare est indiqué.
    string1 Expression de chaîne dans laquelle la recherche est effectuée.
    string2 Expression de chaîne recherchée.
    compare Facultatif. Indique le type de comparaison de chaînes. Si l'argument compare est de type Null, une erreur se produit. Si l'argument compare est omis, la valeur de l'instruction Option Compare détermine le type de comparaison. Indiquez un LCID (LocaleID) correct pour respecter les règles locales spécifiques à la comparaison.


    Valeurs

    L'argument compare peut prendre les valeurs suivantes :

    Constante Valeur Description
    vbUseCompareOption -1 Effectue une comparaison à l'aide de la valeur de l'instruction Option Compare.
    vbBinaryCompare 0 Effectue une comparaison binaire.
    vbTextCompare 1 Effectue une comparaison textuelle.
    vbDatabaseCompare 2 Réservée à Microsoft Access. Effectue une comparaison basée sur les informations de votre base de données.


    Valeurs renvoyées

    Si La fonction InStr renvoie
    string1 est de longueur nulle 0
    string1 est de type Null Null
    string2 est de longueur nulle start
    string2 est de type Null Null
    string2 est introuvable 0
    string2 est trouvée à l'intérieur de string1 Position à laquelle la chaîne est trouvée
    start > string2 0

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/10/2009, 23h19
  2. rechercher un mot dans une formule
    Par modus57 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 11/01/2009, 11h42
  3. Recherche un mot dans une chaine de caractere
    Par jean tof dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2006, 11h34
  4. [VBA]Passer une variable dans une formule Excel
    Par David1974 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2006, 16h52
  5. [Regex]Recherche de mots dans une chaîne
    Par lionel69 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 17/11/2005, 18h20

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