Recherchev dans 3 onglets

Résolu
Bonjour,

j'ai un tableau existant avec une formule recherchev qui va chercher dans l'onglet 1 (RH) et inscrit OK s'il trouve les données ou PasOK s'il ne trouve pas.

Je dois rajouter 2 autres recherches supplémentaires :
- recherche dans l'onglet 2, PasOK s'il trouve les données ET s'il ne les trouve pas
- recherche dans l'onglet 3, PasOK s'il trouve les données ET s'il ne les trouve pas

Comment imbriquer tout ça ?

Voici la formule qui existait et je souhaite la compléter :
=SI(ESTERREUR(RECHERCHEV(B4;'RH'!A:A;1;FAUX));"PasOK";SI(RECHERCHEV(B4;'RH'!A:A;1;FAUX)<>"#N/A";"OK"))

Je ne sais pas si c'est très clair.
Merci pour votre aide !

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour

    A quoi ca sert de chercher dans les onglets 2 et 3 si c'est pour marquer dans tous les cas PasOk ?
    1. Contributeur
      Bonjour
      difficile de se référer à votre formule

      Par ailleurs utiliser RECHERCHEV pour une simple détection semble un peu complexe

      =NB.SI(B4;RH!A:A);"0K;"Pas OK") devrait suffire, et assure l'ensemble de ce que vous avez écrit.

      Mais le plus dur à comprendre est pourquoi vous voulez chercher dans les onglets 2 et 3 pour afficher pas OK si la valeur s'y trouve ou ne s'y trouve pas????

      Si les deux options doivent donner "Pas OK", précisons tout de suite qu'il n'y en a pas d'autre??

      pouvez vous apporter quelques éclaircissements?

      à vous lire
      crdlmnt

      1. Contributeur
        Bonjour Vaucluse il ne manquerait pas un si devant par exemple ?

        =SI(NB.SI(RH!A:A;$B$4);"ok";"pasok")

        Pour le contrôle de la présence dans l'un des trois onglets

        =SI(NB.SI(RH!A:A;$B$4)+NB.SI(Feuil3!A:A;$B$4)+NB.SI(Feuil4!A:A;$B$4);"OK";"PasOk")
      2. Merci à vous 2, ça fonctionne !!
    2. Effectivement, je viens de réaliser que ça ne sert à rien de mettre pas OK....
      Je m'embrouille un peu désolé...

      Alors si je veux faire ceci :
      J'ai une liste de matériel affecté à du personnel, la recherche se fait sur le matricule.
      si le personnel se trouve dans l'onglet 1, c'est OK, s'il ne s'y trouve pas c'est pas OK, l'onglet 1 = employés
      si le personnel se trouve dans l'onglet 2, c'est OK, s'il ne s'y trouve pas c'est pas OK, l'onglet 2 = sous-traitant
      si le personnel se trouve dans l'onglet 3, c'est OK, s'il ne s'y trouve pas c'est pas OK, l'onglet 3 = client
      Tout ce qui n'est pas OK est à traiter.

      Merci
      1. Contributeur
        Re
        alors
        =SI(OU(NB.SI(employés!A:A;B4);NB.SI(soustraitant!A:A;B4);NB.SI(client!;B4));"OK";"Pas OK")

        crdlmnt
    3. Contributeur
      Bonjour

      Avec cette formule vous saurez qui?

      =SI(NB.SI(RH!A:A;$B$4)>=1;"employés ";"")&SI(NB.SI(Feuil3!A:A;$B$4)>=1;"sous-traitant ";"")&SI(NB.SI(Feuil4!A:A;$B$4)>=1;"client";"")
      1. Contributeur
        ... en se passant du >=1 complétement inutile (et même s'il en était besoin, >0 suffirait!) et en supposant que les noms employés etc... ne soient pas les noms d'onglet qui devraient alors se retrouver dans les codes.
      2. Merci cette formule est encore mieux !
        sauf une chose du coup si la ressource n'est dans aucune liste j'aimerais marquer PASOK par exemple.
        J'ai donc mis PASOK entre les guillemets, mais ça me l'écrit 3 fois.
        Au lieu du &, il faudrait peut-être mettre OU, non ? Mais quelle est le signe ? car si j'écris OU ça ne fonctionne pas.
        Pouvez-vous m'aider ?
      3. Contributeur
        Re
        =SI(NB.SI(RH!A:A;$B$4);"employés ";SI(NB.SI(Feuil3!A:A;$B$4);"sous-traitant ";SI(NB.SI(Feuil4!A:A;$B$4);"client";"Pas Ok")))
        celle ci devrait suffire, pour faire simple
        crdlmnt
      4. Contributeur
        La formule modifiée

        =SI(NB.SI(RH!A:A;$B$4);"employés ";SI(NB.SI(Feuil3!A:A;$B$4);"sous-traitant ";SI(NB.SI(Feuil4!A:A;$B$4);"client";"NoK")))

        la réponse sera dans l'ordre du premier trouvé s' il y en a deux
      5. Super merci beaucoup !