Excel recherche autre classeur

Bonjour j'ai une recherche excel à faire depuis le classeur "références" contenant une liste de références dans le classeur "produits" contenant un tableau avec deux colonnes référence et prix.

Je dois afficher le prix dans le premier classeur. Savez vous quelle est la formule ?

Est-il obligatoire que la valeur recherchée sit située en colonne 1 de la matrice ?

Thx

13 réponses

  1. Contributeur
    Bonjour.

    Eléments de réponse ...

    1) Il faut que les 2 classeurs soient ouverts simultanément.
    2) N'est-il pas possible de mettre les 2 tableaux dans un même classeur ?
    3) Quand on utilise la fonction RECHERCHEV, oui, "Valeur cherchée" doit se trouver dans la première colonne de la matrice.
    1. Contributeur
      Bonjour
      si vous utilisez la formule recherche, oui c'est obligatoire d'avoir la valeur cherchée dans la première colonne. Toutefois il y a d'autres solutions comme celle-ci par exemple:
      =INDEX(CHAMP;EQUIV(Valeur cherchée; colonne de recherche ; 0); N) de colonne à éditer dans le champ)
      il faut simplement que les 1° lignes de CHAMP et colonne de recherche coïncident
      pour l'exemple, rechercher la valeur de X1 dans la colonne D d'un champ B2:F100 et ressortir la valeur de E correspondante:
      =INDEX($B$2:$F$100;EQUIV(X1;$D$2:$D$100;0);4)
      ou:
      $B$2:$F$100 est le champ complet où se trouve la valeur à éditer
      X1 est la valeur à trouver
      $D$2:$D$100 est la colonne où se trouve la valeur à chercher
      0 est un code excel pour définir le type de valeur à chercher pour le code EDIT
      4 est le rang de la colonne à éditer dans le champ B2:F100

      a noter que la colonne de recherche du code EQUIV n'est pas obligatoirement d, considérée comme la ligne 1 de la colonne par le code EQUIV, corresponde à la première ligne du champ indiqué dans le code INDEX....
      ceci même si les N° de ligne CHAMP et Colonne ne sont pas les mêmes: 1° ligne de Colonne correspond toujours à 1° ligne de champ quelque soit les N° de ligne des règles.

      Crdlmnt

      1. Sub ok()
        Workbooks("basefixestoresprealablesauxreferences").Sheets("Feuil1").Range("F2").Value = 12700200
        Workbooks("gamstor").Sheets("COMODITY PA").Range("A" & 1).Value
        End Sub

        macro hasardeuse
        1. je vous remercie dans une deuxième temps est il possible de faire ceci :

          j'ai 3 références disponibles en 3 dimensions differentes

          4 autres correspondant à 4 longueurs differentes.

          Références à deux chiffres : exemple 2D70 signifie : 2 dimensions, 7 mètres.

          J'ai un tableau faisant correspondre références et mesures.
          Excel peut-il me sortir les 12 combinaisons de références possibles sans que j'aie à les écrire une à une ?

          Cordialement
          1. Contributeur
            Re-bonjour

            une solution selon modèle ci joint... aussi compliquée que faire le tableau en manuel, sauf si les codes sont des variables.
            Si vos tableaux de données d'entrée ont une autre configuration et si vous avez du mal à adapter la formule, revenez nous voir avec des précisions sur l'organisation de vos données.
            http://www.cijoint.fr/cjlink.php?file=cj201004/cijkkk0pv5.xls

            Crdlmnt
            1. Du très bon boulot je vais tenter de méditer une juste méthode d'application de cette formule assez redoutable.
              1. Il reste une problème; si on remplace 3 ET 4 par 6 ET 9, il semblerait que l'arrangement précédent fonctionnait car le reste de la division de douze par 3 est bien 3. Hors ce n'est plus le cas pour six et neuf par rapport à cinquante-quatre.

                Je ne trouve pas à première vue de solution.
                1. Contributeur
                  Bonjkour
                  comprend pas ça:

                  car le reste de la division de douze par 3 est bien 3. ???

                  le reste de la division de 12 par 3 est 0, non?
                  c'est le but de la variante:
                  si(MOD(Cell;3)=0;3..... trouver 3 là où la formule MOD trouve 0 .
                  ça devrait marcher idem pour 54/3 ou par 6 pour par 9
                  passer sur cijoint un modèle type de ce que vous voulez faire, même avec des infos bidon mais organisées selon vos données. Il devrait y avoir une solution.
                  le but de la manoeuvre: obtenir le reste de la division quelque soit le multiple, jusqu'à diviseur -1 et remplacer le 0 obtenu quand le multiple est exact, par la valeur du diviseur:

                  =SI(MOD(LIGNE();6)=0;6;MOD(LIGNE();6))
                  vous donnera sur toute la hauteur tirée:
                  1;2;3;4;5;et 6 à la place 0
                  crdlmnt
                  Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
                  1. Sur le même modèle que la formule d'hier où j'avais respectivement 3 et 4 références j'en ai désormais 9 et 6, reprenant les colonnes A et B.

                    Je veux conserver les 9 références en A en première position dans la nouvelles cellule, mon réflexe a été :

                    =INDIRECT("A"&SI(MOD(LIGNE();9)=0;9;MOD(LIGNE();9)))&INDIRECT("B"&SI(MOD(LIGNE();6)=0;6;MOD(LIGNE();6)))

                    Mais une subtilité m'échappe
                    1. Contributeur
                      Re
                      je ne vois pas la fin de votre formule dans votre message mais pour un tableau de 54 avec 9 x 6, voila ce que ça devrait donner:
                      http://www.cijoint.fr/cjlink.php?file=cj201004/cijoxfhSXK.xls
                      crdlmnt
                      1. Cette formule me donne un résultat de 18 combinaisons réitéré 3 fois.
                        1. Contributeur
                          effectivement ça m'a échappé on cherche à compléter.. a bientôt
                      2. Peut-être la mise en place d'un tableau est elle plus efficace.

                        IL me semble que ça peut simplifier les choses en fait.
                      3. Contributeur
                        Re re

                        Çà ne se simplifie pas, mais on y arrive... sous réserve à valider dans tous les cas de figure
                        http://www.cijoint.fr/cjlink.php?file=cj201004/cijqlLId7I.xls
                        attention , le décalage nécessaire de la 1° ligne dans la colonne résultat décale d'un rang la liste des noms, mais ils y sont bien tous.

                        le tiret est là pour faire joli

                        Bon courage
                        Crdlmnt

                        PS: sous la condition qu'il n'y ait que la liste de noms en colonne AA vous pouvez remplacer le 9 dans la formule de l'édition, à chaque poste, soit trois par:
                        NBVAL(A:A)
                        sauf encore une nouvelle erreur grossière de ma part , la formule va s'ajuster toute seule au nombre de code en A et c'est la hauteur sur laquelle la formule est tirée qui ajuste le nombre de code en B.
                        (après le dernier code B la formule n'affiche plus que les noms en A .)

                        Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
                        1. Contributeur
                          Tenez en complément c'est mon jour de bonté :-)
                          celui ci n'affiche que ce qu'il édite et prend autant de code que vous souhaitez
                          http://www.cijoint.fr/cjlink.php?file=cj201004/cijQEMV9p4.xls
                          testé avec 24 noms et 20 codes
                          Amusez vous bien
                          bien cordialement

                      Discussions similaires

                      etiquette pour dos classeur

                      2 réponses