RechercheV dynamique avec fonction DECALER

Résolu
Bonjour,

Je voulais savoir s'il était possible de dynamiser la "table_matrice" de la RECHERCHEV avec la fonction DECALER dans une source externe.

Ma matrice à vocation à grandir ou se réduire avec le temps, j'utilise donc la fonction DECALER réccupérant le nombre de ligne du tableau en question

Le problème que je rencontre est le suivant :

Je recherche des données dans une source externe fermée et mes formules ne fonctionnent que si la fichier source est ouvert même si je mets à jour les liens.

Sinon la RECHERCHEV ne fonctionne pas, personnellement j'ai elucidé beaucoup de pistes, mes recherchesV fonctionnent avec la source fermée si et seulement si je n'utilise pas la fonction DECALER

Y'a t-il une limite à la fonction DECALER sur les liens externes ?
Y'a t-il une faute dans mes formules ? (étonnant car elles fonctionnent si la source est ouverte)


Je me questionne également sur ce que renvoie la fonctione DECALER car j'ai souvent l'erreur #VALEUR, est-elle compatible avec la matrice nécessaire à la RECHERCHEV ?

Voici la formule la plus simple que j'utilise >

SI($A8="";"";RECHERCHEV($A8;DECALER([Macro_Revers_Beta.xlsm]Commande!$A$2;;;[Macro_Revers_Beta.xlsm]Commande!$L$2;8);4;FAUX))

Et une autre >

SI($A8="";"";RECHERCHEV($A8;DECALER('S:\BE\Admin\Reversements BE\2018\Alpha - Macro reversement (en cours)\Macro\[Macro_Revers_Beta.xlsm]Commande'!$A$2;;;'S:\BE\Admin\Reversements BE\2018\Alpha - Macro reversement (en cours)\Macro\[Macro_Revers_Beta.xlsm]Commande'!$L$2;8);3;FAUX))

Merci d'avance pour votre aide

5 réponses

  1. Contributeur
    Bonjour
    • qu'avez vous dans le $L$2 du code DECALER?
    • est ce que la recherche fonctionne comme vous l'entendez si vous remplacez l'adresse complète de L2 par un nombre de lignes figé

    crdlmnt

    0
    1. $L$2 fait référence au nombre de ligne du tableau source, pour connaitre sa longueur. (Je détermine le nombre de lignes par le fonction NBVAL et je réccupère donc ce nombre dans le formule de RECHERCHEV)

      Il se passe la même chose : Si le fichier source n'est pas ouvert cela renvoie #VALEUR si le fichier source est ouvert cela fonctionne
      0
  2. Contributeur
    bonjour le ctrl, Vaucluse

    pourrait on voir le classeur source ?

    pour cela
    Mettre le classeur sans données confidentielles en pièce jointe sur 
    https://mon-partage.fr/
    Puis faire un clic « copier le raccourci » et lecoller dans votre message


    0
    1. Bonjour,

      Je vous l'envoie ce soir, l'accès au site m'est refusé au travail
      0
  3. Le fichier source est disponible via le lien suivant :

    https://mon-partage.fr/f/NHBIvSV8/
    0
    1. Contributeur
      Bonjour,

      pour répondre à ta question, oui Decaler(), tout comme Indirect(), ne fonctionnent pas sur classeur fermé.

      Mais tu as une idée du nombre max de lignes ? Si ce n'est pas des centaines de milliers tu peux tenter en mettant le max. recherchev() est bien optimisé, ça ne ralentira peut être pas trop.
      eric

      0
      1. Merci pour l'info, au moins je suis fixé !

        Et bien j'ai 3 tableaux, 1 de 30 lignes environ, 1 autre d'environ 2 000 et l'autre de 3 000 lignes encore
        Ça fait pas un peu beaucoup ? :)
        0
      2. Ai-je une dernière solution en faisant référence avec des Tableau (table) dans le fichier source, comme ça elles seront dynamiques donc pas besoin d'utiliser de Decaler() ou Indirect()

        En espérant que ça fonctionne même avec un fichier fermé
        Merci d'avance
        0
      3. Contributeur
        Je passe juste en aparté... 3000 lignes pour une fonction RECHERCHEV c'est assez dérisoire
        Bonne soirée
        0
      4. Contributeur
        Tableau (table) dans le fichier source, comme ça elles seront dynamiques
        Excellente idée que je regrette de n'avoir pas eue ;-)
        Tiens nous au courant

        Comme dit vaucluse, une recherche sur 3000 ligne pas si énorme.
        Mais tout dépend combien de fois tu le fais. Si c'est 30000 ça risque de se sentir. Teste...
        0
      5. Pour info, avec une "Table" ça ne fonctionne pas non plus, si la source est fermée ça ne fonctionne pas :/

        Et bien il y a 1 recherche par ligne saisie (et en moyenne 20 le sont) ce qui fait grosse maille : 3 000 * 20 = 90 000 lignes.

        Je teste au plus vite !
        0
    2. Après plusieurs tests si je mets en dur ma table_matrice de la recherche ça rame un peu si je commence à mettre beaucoup de ligne mais c'est correct.

      Mais j'ai trouvé une solution pour avoir le nombre de lignes exact à chaque fois dans mes sources et ne pas rechercher du vide >

      J'imbrique dans la table_matrice le résultat d'un NBVAL() qui compte le nombre de lignes

      Merci de votre aide, je clôt le sujet
      0