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 :

Chercher un mot dans une phrase dans une plage sans macro ? [XL-2010]


Sujet :

Excel

  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut Chercher un mot dans une phrase dans une plage sans macro ?
    Bonjour,
    Savez vous s'il existe une possibilité de rechercher l'existance d'un mot contenu dans une phrase.
    Cette phrase étant dans une plage de cellule.

    <Trouve> et <Cherche> ne fonctionnent que si le mot cherché est seul dans une cellule.

    En fait il faudrait l'équivalent de <Find> en vba (ou la fonction du bouton jumelle).

    Me dire que ça n'existe pas est une réponse qui m'évitera de chercher.

    En fait je rempli un tableau au quotidien avec une colonne qui contient un identifiant, et je veux vérifier à chaque ligne ajoutée si l'identifiant ne figure pas dans une autre feuille où il a pu être renseigné au milieu de texte dans des cellules.

    Merci pour vos réponses.
    Denis

  2. #2
    Membre Expert Avatar de excfl
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    690
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 690
    Par défaut
    Bonjour le forum,

    C1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(STXT(A1;CHERCHE($B$1;A1;1);NBCAR($B$1));"***")
    Images attachées Images attachées  

  3. #3
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour Denis_67,

    Une posibilité :
    Le mot cherché est en B1 et on cherche dans toute la colonne C :
    =SI(SOMME(SIERREUR(CHERCHE($B$1;C:C);0))= 0;"Pas trouvé";"Trouvé")

    EDIT : Formule matricielle a valider par CTRL + MAJ + Entrer

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tu peux te faire une petite fonction personnalisée en VBA.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function ChercheIn(MaChaine As String, MaZone As Range) As String
       Dim Result As Range
       Set Result = MaZone.Find(MaChaine, LookIn:=xlValues)
       If Result Is Nothing Then Exit Function
       ChercheIn = Result.Value
    End Function
    Premier argument : valeur cherchée
    Second argument : zone de recherche
    Valeur renvoyée : contenu de la cellule trouvée (vide si la recherche est infructueuse)

  5. #5
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Merci pour vos réponses.

    Excfl et Anthony, vos formules fonctionnent si ma plage = une colonne mais pas sur plusieurs colonnes.

    MENHIR, bien sûr ta fonction fonctionne, mais je cherche une formule.

    Denis

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Denis_67 Voir le message
    MENHIR, bien sûr ta fonction fonctionne, mais je cherche une formule.
    Il suffit que tu mettes cette fonction dans un xlsa chargé automatiquement à l'ouverture d'Excel et elle s'utilisera exactement comme n'importe quelle fonction Excel.
    Ou alors tu peux la mettre dans le fichier où tu l'utilises et tu pourras le transmettre sans problèmes.

  7. #7
    Membre Expert Avatar de excfl
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    690
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 690
    Par défaut
    Phrases sur deux colonnes : A & B et mot à trouver en C1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(STXT(A1;CHERCHE($C$1;A1;1);NBCAR($C$1));SIERREUR(STXT(B1;CHERCHE($C$1;B1;1);NBCAR($C$1));"***"))

  8. #8
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    La présence d'un identifiant dans une plage donnée peut se trouver avec la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = NB.SI(plage donnée;"*identifiant*")
    Si le résultat renvoyé est supérieur à 0, c'est que l'identifiant se trouve dans la plage donnée, qu'il soit tout seul dans une cellule ou au milieu d'un texte.
    Cette fonction peut se combiner dans une formule plus élaborée.
    Cordialement
    Claude

  9. #9
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Ben voilà,

    merci pour vos contributions.

    Résumé:
    pour mon cas je garde la solution de Papouclo
    - Papouclo : honte à moi de n'avoir pas pensé au caractère "*" en début et fin de texte recherché--> donc ça marche
    --> par contre quand la valeur cherchée est seule dans une cellule cela ne marche plus, j'ai donc complété ce cas comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =SI(NB.SI(MaPlage;"*"&ValeurCherchee&"*")>0;"OK";SI(NB.SI(Maplage;ValeurCherchee)>0;"OK";""))
    - excfl le fait de répéter la séquence sur les colonnes concernées fonctionne.
    et bien sûr la fonction proposée par Menhir fonctionne aussi.

    merci à tous !
    Denis

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

Discussions similaires

  1. Déplacer une image d'une feuille vers une autre dans un fichier Excel
    Par helenaide dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2011, 14h27
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. Réponses: 2
    Dernier message: 23/05/2010, 12h45
  4. Une image dans un Jpanel dans un Jpanel dans un Jframe
    Par ThomasH dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 09/12/2009, 20h23
  5. [2.0] Mettre une Checkbox dans le header d'une colonne d'une DatagridView
    Par aurelien.tournier dans le forum Windows Forms
    Réponses: 5
    Dernier message: 23/01/2007, 10h27

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