Recherchev sur X fichiers

Résolu

Bonjour,

Depuis un fichier, comment effectuer une recherchev sur tous les fichiers d'un autre répertoire ?

Répertoire C:\SOURCE\

&

Répertoire C:\fichiers\

rechechev =

valeur cherchée colonne A Fichier1

table_matrice colonne J à colonne BA (sur tous les fichiers)

N° index col = 43

Mon problème est le suivant dans le répertoire, il peut y avoir 10 comme 100 fichiers.

Comment faire pour effectuer une recherchev, sur tous les fichiers ? Qu'importe le nombre de fichiers à interroger ?

Merci d'avance !

Bien cordialement,


Windows / Firefox 102.0

40 réponses

Résumé de la discussion

Le besoin est d'effectuer une rechercheV sur l'ensemble des fichiers situés dans un répertoire (par exemple C:\SOURCE et C:\fichiers), quelle que soit leur quantité, à partir d'une valeur en colonne A et en extrayant des données des colonnes J à BA (indice 43). L'approche proposée privilégie Power Query lorsque la version d'Excel le permet (Office 2016/365), avec la possibilité de spécifier le chemin du répertoire dans une cellule et de charger les données dans une plage nommée couvrant A à AY, les colonnes AZ et BA étant ajoutées par la requête. En alternative, une solution VBA est évoquée, et Power Query demeure la référence lorsque disponible; il est recommandé de vérifier que tous les fichiers aient une structure identique avant de lancer la requête. Enfin, des obstacles techniques fréquemment mentionnés incluent des en-têtes manquants ou des valeurs nulles dans les données, ce qui nécessite des ajustements de filtrage et de traitement lors de l’importation.

Bobot (l’IA à votre service)
  1. Bonjour,

    Est-ce que ta boîte est toujours en Office2010?

    Si vous avez migré en 2016, on pourrait également utilisé Power Query....

    Dans l'affirmative, est-ce que tous les fichiers compris dans le répertoire de recherche ont la même structure?

    Sinon, on peut quand même tester avec ton PC Perso (365, il me semble...) - Il suffit pour cela que tu joignes 2 fichiers anonymisés de recherche, et ton fichier anonymisé également à partir duquel tu souhaites récupérer tes données...

    @ te relire


    1
    1. Bonjour, 

      2016 mais sans power Query. J'ai power pivot si jamais ça peut aider....

      Oui tous les fichiers ont la même structure.

      La solution doit être sur 2016 dans le milieu pro. 

      J'ai bien, perso 365.

      Cdlt

      0
  2. Ok,

    Finalement, j'évite les noms d'en-têtes, je ne travaille que sur les numéros de colonne...

    Dans le Zip joint, 3 fichiers :
    - Le premier "PQ_Pygos", effectue la récupération des données (à mettre dans un répertoire quelconque, différent du répertoire contenant les fichiers à scanner)

    - Les 2 autres, des fichiers bidons, avec quelques données (à enregistrer dans un même répertoire)

    Pour commencer, il faut configurer le niveau de confidentialité (qui ne sert à rien), et à faire une bonne fois pour toute (j'ai mis la procédure dans le fichier PQ)

    Dans l'onglet "Paramètres", tu as donc cette procédure, mais aussi la cellule C2 à renseigner :
    Mettre dans cette cellule le chemin du répertoire contenant tous les fichiers à scanner

    Une fois mis à jour ce chemin, tu copies/colles tes données de ton onglet (de A à AY). J'ai nommé cette plage "T_Data", qui couvre donc de A1:AYxxxx)

    Il n'y a rien dans les colonnes AZ ni BA, ces colonnes sont rajoutées par la requête (j'ai également ajouté le nom du fichier où on a trouvé les correspondances...)

    Si tu ne t'en sors pas, on va y aller pas-à-pas...

    https://www.cjoint.com/c/MFuktYNtBBC

    Bon courage


    1
    1. .../

      Merci ! Je découvre Power Query .....

      Je rencontre des problèmes avec T_Final !

      En actualisant, je vois le nom de tous les fichiers présent dans le répertoire, défiler et puis erreur "Téléchargement non effectué."....

      Expression.Error : Désolé... Nous n'avons pas trouvé la colonne « Name » de la table.
      Détails :     Name

      0
  3. Re-,

    Je m'étonne des "cellules" contenant "null" dans la première ligne...

    Tu devrais normalement avoir les en-têtes des colonnes...

    Je te propose de continuer demain, dans ce dépannage "hot-line"???

    Je pense que le souci vient d'un peu plus haut

    Bonne soirée


    1
    1. Nickel,

      Pour commencer un peu avec PQ, tu peux déjà regarder de ce côté pour les bases, par ici ou ici pour appréhender le code M.

      Tu n'as pas donné le résultat????

      Tu as réussi à tout obtenir? En combien de temps approximativement?


      1
      1. Contributeur

        bonjour,

        il faut s'arreter à la première valeur trouvée?

        0
        1. Bonjour,

          Oui .

          Merci !

          0
        2. Contributeur
          @PYGOS69

          Je pense que le mieux est de faire cela via un code VBA.

          • Quand faut-il faire la recherche?
          • Quelle valeur faut-il chercher?
          • Où faut-il la chercher?
          • Que faut-il faire quand la valeur est trouvée?
          1
        3. @yg_be

          • Il faut chercher toutes les valeurs de la colonne A du fichier source

          • Recherche dans tous les fichiers d'un répertoire en colonne J la valeur colonne A

          • renvoyer la valeur de la colonne BA

          • Le résultat en colonne BC du fichier source

          0
        4. Contributeur
          @PYGOS69

          Quels sont les quantités, en  gros? 

          - nombre de valeurs à chercher

          - nombre de valeurs dans lesquelles chercher

          Est-il réaliste de créer, par VBA, une feuille contenant toutes les valeurs en J & BA?

          0
        5. @yg_be

          .../

          15 000 ~en colonne A

          Imaginons que j'ai "124577" en A8, je recherche dans tous les fichiers cette référence en colonne J et si je trouve je récupère l'info de la colonne BA, que j'indique dans le fichier source en ligne 8 colonne BD.

          0
      2. Re-,

        Si tu as 2016, tu as Power Query.... C'est en natif avec la version


        0
        1. Non c'est désactivé en entreprise....

          0
        2. @PYGOS69

          Bonjour,

          Va vraiment falloir que ta boîte m'explique....

          Elle autorise les macros, et interdit Power Query?????

          Le stagiaire RSI n'a pas confondu?

          Que se passe-t-il sur tu appuies sur les touches Alt + F12?

          Le volume de données à traiter que tu indiques supra n'est pas un obstacle pour PQ...

          PS, je précise que je n'ai aucune action :)

          0
        3. @cousinhub29

          .../

          ALT +F12 rien ne se passe....

          0
      3. Ok,

        Vraiment désolé pour toi, reste à espérer que yg_be te trouvera une solution (mais j'en doute pas trop...)

        Bonne journée


        0
        1. Merci d'avoir essayé ! Si tu as un exemple avec Power Query et que tu as le temps, je veux bien voir sur excel 365 à la maison ....

          Oups, désolé je viens de m'apercevoir que dans données > autres sources > provenance Microsoft Query, je peux sélectionner des fichiers ...... Cela veut il dire que je peux me servir de PoWer Query (pas de connaissance à ce sujet, mais....)

          Bonne journée !

          0
      4. Re-,

        Déjà, bonne nouvelle..

        Par contre, je pense que si tu fournissais (comme demandé un peu plus tôt) des fichiers exemples, anonymisés, mais avec la structure exacte de tes fichiers réels - nb d'onglets, les noms des fichiers à "scanner" ont-ils des bases communes?, bref, tout ce qui pourrait être utile...

        Je t'expliquerai alors ce qu'il te faudra faire, pour adapter à ton environnement.

        @ te relire


        0
        1. .../

          Fichiers Cible

          Ce sont des tableaux avec 53 colonnes de A à BA (les titres se trouvent en ligne2)

          L'élément en commun se trouve :

          Fichier source en colonne A

          Fichiers Cible en colonne J

          Dans les fichiers Cible,il y a en colonne AZ une date et en colonne BA un motif.

          Je souhaite rapatrier la date et le motif pour tous les éléments trouvés dans les fichiers Cible vers le fichier Source (Colonne AZ pour la date et BA pour le Motif), comme dans les fichiers Cible).

          Il n'existe pas de doublon....

          0
      5. Re-,

        Dans les fichiers "Source", les titres ont tous le même nom?

        Quels sont les en-têtes des colonnes J, AZ et BA?


        0
        1. .../

          Oui, les fichiers source ont tous le même nom

          En J = Elément recherché

          En AZ = Date contact

          En BA = Motif Contact

          Le fichier ou je dois récupérer les infos :

          En A = Elément recherché

          En AZ = Date contact

          En BA = Motif Contact

          0
        2. @PYGOS69

          Re-,

          Pour être bien sûr...

          La casse est essentielle, donc "Date contact" (D majuscule, c minuscule), et "Motif Contact" (les deux en nom propre)

          0
        3. @cousinhub29

          Oui , et toujours en colonne AZ & BA

          0
      6. Re-,

        On va privilégier les "Réponses" aux "Commentaires", je trouve la lecture du fil bien plus aisée...

        Lorsque tu es dans l'éditeur PQ, à gauche, les requêtes, et à droite, les étapes

        Tu cliques sur la requête "T_Final", puis sur l'étape "SupprCol2"

        Quel est le mot dans la 1ère ligne de la 3ème colonne?

        Tu retiens ce nom, puis, 2 étapes plus bas, tu remplaces le "Name" par ce mot :

        = Table.RenameColumns(PromoHead,{{"Name", "Fichier"}})

        A cette étape, je renommais la colonne "Name" par "Fichier"

        Essaie, puis on continue...


        0
        1. 2 étapes plus bas c'est rename ?

          0
      7. Heu, c'est bizarre, il n'y a aucune données?

        Dans la requête "T_Recup", tu as des données, à chaque étape?


        0
        1. Dans T_RECUP, j'ai en colonne1 Name avec le nom des fichiers

          En colonne 11 = null

          En colonne 53 = null

          En colonne 54 = null

          0
      8. Re-,

        T_Recup, étape "Selections", tu as quoi?

        Regarde le fichier ppt joint, j'y ai mis les étapes de la requête "T_Recup"

        Tu me dis à quelle étape (hormis évidement les noms de fichiers), on n'a plus les mêmes "données"

        https://www.cjoint.com/c/MFunxArEb8C


        0
        1. ../

          T_Recup, étape "Selections", tu as quoi?

          Une colonne Name et une colonne Data

          Name = la liste des fichiers

          Data = Table

          0
        2. @PYGOS69

          ..../

          La colonne 11, correspond pas à la colonne J ou je me trompe...

          0
        3. @PYGOS69

          Re-,

          Est-ce que tu peux utiliser "Répondre", et non "Commenter"?

          La colonne 1 est la liste des fichiers (Name), et comme J est la 10ème lettre, donc colonne10 + 1

          Ce qui m'intéresse,c'est de savoir si tu obtiens bien toutes les données de tous tes classeurs..

          Ensuite, on continue

          0
        4. T_Recup étape Selections :

          = Table.SelectRows(Expand1, each ([Kind] <> "DefinedName")) [[Name],[Data]]

          0
      9. Ok, donc on va descendre

        Regarde mon fichier..

        A l'étape suivante, tu as des données?

        PS, il me vient un doute...

        Combien d'onglets dans tes fichiers à scanner?

        Est-ce que l'onglet contenant les données est bien le premier onglet?


        0
        1. Re-,

          Je ne sais pas si je parle français...

          Je t'ai demandé d'utiliser "Répondre", et non "Commenter"...

          Bref...

          As-tu regardé mon fichier powerpoint?

          Est-ce que tu as des données à l'étape "Expand", de la requête "T_Recup"? (regarde bien vers la droite, également)


          0
          1. Je viens de vérifier l'ensemble des requêtes, après lecture du powerpoint et je viens de relancer.

            Etape "Expand" = null

            La différence par rapport au powerpoint, C'est à l'étape SupprCol, j'ai null

            Combien d'onglets dans tes fichiers à scanner?

            3

            Est-ce que l'onglet contenant les données est bien le premier onglet?

            Oui après rectification ! Il est nommé Feuil1 désormais..

            Je désespère............

            0
            1. .../

              Dans T_RECUP SupprCol, j'obtiens enfin des résultats (certaines lignes sont toujours = null), mais d'autres renvoient des infos........

              Mais toujours plantage T_Final, cette fois-ci dans la colonne "Date contact" .

              Je vérifie les fichiers pour avancer.....

              0
              1. Re-,

                La position de l'onglet est bien en première? (le nom importe peu, c'est la position)

                Est-ce que tu as besoin des autres onglets?

                Sinon, quelle colonne est forcément remplie?

                Admettons la colonne J.

                Dans la requête "T_Recup", tu cliques sur l'étape "DemoteHead", tu sélectionnes la colonne 11, puis tu cliques sur le Filtre, et tu décoches "null"

                Est-ce que ça s'améliore? (n'aies aucune crainte, on n'intervient pas du tout sur les fichiers réels)


                0
                1. .../

                  J'avance ! j'ai testé avec un seul fichier,

                  Dans T_RECUP, je retrouve toutes les infos.

                  J'ai décoché "null"

                  Dans T_Final, lorsque je réactualise tout, un message apparait [Epression.Error] Désolé ...Nous n'avons pas trouvé la colonne "Date contact" de la table.

                  T_FINAL = !Téléchargement non effectué

                  J'ai les résultats sur T_RECUP, mais du coup dans mon tableau EXCEL je ne récupère rien, pour l'instant.....

                  0
                  1. .../

                    Est-ce que tu as besoin des autres onglets ?

                    Non (j'ai laissé que la Feuil1)

                    Sinon, quelle colonne est forcément remplie ?

                    Colonne J

                    0
                    • 1
                    • 2