Récupérer données sur fichiers, dossiers, feuilles différents

Bonjour à tous,

Je cale un peu sur une difficulté, je ne sais même pas s'il est possible d'automatiser ce que je dois faire :

J'ai un fichier avec une liste de noms (par exemple DUPONT Antoine, BENZEMA Karim...) pour lesquels je dois récupérer la liste des séances effectuées.

Ces séances sont rangées chacune dans un fichier et dossier au nom de la personne (par ex dossier "Dupont Antoine", fichier "Dupont Antoine" - en minuscule cette fois-ci).

Dans ce fichier j'ai la première feuille résumé intitulée "Informations patient" et les autres feuilles sont les feuilles de séance.

Dans la feuille résumé, j'ai notemment pour chaque séance, colonne A une cellule "Note de séance" et colonne B la date de la séance au format dd.mm.yyyy.

Et chaque séance a sa propre feuille intitulée dd.mm.yyyy, laquelle contient notemment colonne A une cellule "Notes" avec colonne B le contenu de la note. C'est ce fameux contenu de note que je souhaite récupérer avec la date de la séance, pour chaque note de séance, pour chaque patient...!

Si ceci est effectivement réalisable, il faudrait soit tout concaténer dans une seule cellule par patient, soit faire une cellule par séance, les 2 sont envisageables.

Je ne sais pas si j'ai été clair dans mon explication, merci si vous pensez à un moyen d'automatiser cela...

Bonjour

A priori faisable par PowerQuery intégré à Excel

Si je comprends bien l'arborescence des dossiers est du type

Séances

  • Dupont Antoine
  • Benzema Karim

avec un classeur dans chaque dossier

Il faudrait que tu joindre 2 classeurs exemples anonymisés mais représentatifs

Bonjour à tous, bonjour 78chris,

L'arborescence des dossiers est bien du type

  • séance
    • Dupont Antoine
      • Classeur "Dupont Antoine"
      • Autres classeurs et/ou autres dossiers
    • Benzema Karim
      • Classeur "Benzema Karim"
      • Autres classeurs et/ou autres dossiers

Je joins 2 classeurs types fictifs.

A noter que je n'ai jamais utilisé powerQuery, il faut installer un module j'imagine ?

Merci beaucoup pour votre aide !

9benzema-karim.xlsx (11.87 Ko)

RE

PowerQuery est totalement intégré à Excel 2016 et +

D'après ton arborescence il y a d'autres classeurs ou sous-dossiers et il faut donc ne charger qu'un classeur : celui portant le nom de ta liste

On a donc besoin aussi de la structure exacte de l'onglet du classeur qui liste les noms

Dans tes classeurs je vois seulement les onglets

  • Informations patient
  • date x
  • date y
  • ...

mais pas de feuille résumé

La première feuille date n'a pas le même titre en colonne A : doit-on la traiter ?

Pour l'instant j'obtiens cela en traitant toutes les feuilles sauf la 1ère

image

Doit-on garder les ligne ou Note est vide ?

Re,

Il n'y a pas de feuilles résumé, je vais simplement avoir un autre classeur avec la liste des noms en colonne A, pour lesquels j'ai besoin de récupérer les notes de séances à rajouter sur les colonnes suivantes dans la même ligne pour chaque patient.

La première feuille date n'est en général pas à traiter mais théoriquement elle pourrait l'être : en fait la première date correspond au bilan, et les autres aux notes de séances. Il s'agirait donc de vérifier sur l'onglet "informations patient" si la date correspond à un bilan ou à une note de séance. Si c'est bien une note de séance alors on va à la feuille correspondante et on récupère le contenu de la note de séance et sa date.

RE

je vais simplement avoir un autre classeur avec la liste des noms en colonne A, pour lesquels j'ai besoin de récupérer les notes de séances à rajouter sur les colonnes suivantes dans la même ligne pour chaque patient.

PowerQuery se moque de la colonne, A ou Z, mais se base sur le titre de cette colonne : peux-tu préciser.

Tu ne réponds pas concernant l'absence de note en colonne Note et tu ne précises pas si finalement on prévoit une ligne par séance ou pour n séances, ce qui peut vite devenir illisible au fil du nombre de séances...

La première feuille date n'est en général pas à traiter mais théoriquement elle pourrait l'être : en fait la première date correspond au bilan, et les autres aux notes de séances. Il s'agirait donc de vérifier sur l'onglet "informations patient" si la date correspond à un bilan ou à une note de séance. Si c'est bien une note de séance alors on va à la feuille correspondante et on récupère le contenu de la note de séance et sa date.

Je vois que la demande de départ se complique au fil des questions...

  • Hum pour le premier point tu me demandes le titre de la colonne : la liste des noms sera sur la colonne "nom" du "Tableau1" de la feuille "Bilan 1" du fichier "Bilan kiné".
  • C'est sur ce même tableau, aux colonnes "séances 1" , "séances 2" etc. qu'il faudrait rajouter la date et le contenu de chaque séance. Donc 1 ligne par patient, et dans l'idéal 1 colonne par séance.
  • Pour l'absence de note en colonne note, si je me fie à ta capture d'écran, en fait il y a dans la capture d'écran toutes les données qu'il ne faut pas garder, et il n'y a pas précisément les données qu'il faut garder, à droite de la cellule contenant "Notes" sur les feuilles de notes de séance. Par exemple pour Karim Benzema, il faudrait garder :
    • en séance 1 : "\\\\\\\\\\ Le jeudi 09/05/2022 : ////////// [retour à la ligne] Plus de cristaux, mais légère sensibilité au relever avec nyst... Qu'il fasse les mvts chez lui et on reteste". (Les slash la date et le retour à la ligne sont la nomenclature idéale mais pas indispensable)
    • en séance 2 : "\\\\\\\\\\ Le lundi 16/05/2022 : ////////// [retour à la ligne] Tout bon"

Désolé si ce n'est pas très clair, j'espère que ça l'est plus désormais

Merci beaucoup !

RE

On peut obtenir, soit le tableau bleu, soit le tableau vert mais si grand nombre de séances cela fait beaucoup dans une cellule...

image

Dans les 2 cas il s'agit d'un autre tableau que celui contenant les noms : une requête ne peut compléter un tableau source

Je pars de ceci

A noter qu'un tableau structuré dois être nommé : de même que l'on ne garde pas Classeur1, Feuil1, on ne garde pas Tableau1

J'ai nommé le tableau des noms Patients

image

Re,

Ok, si on ne peux pas compléter le tableau des noms aux colonnes correspondantes, je pense que le tableau vert sera plus adapté car je n'aurai qu'à copier la colonne "Notes" et la coller à la bonne colonne dans le tableau Patients ; en considérant que l'ordre du tableau des noms sera conservé..?

RE

Non.

Une requête est dynamique : à l'actualisation tous les classeurs, anciens ou nouveaux, sont traités

Si tu commence à faire des copier/coller dans une des sources, c'est le bo.del assuré...

Ah, mais dans ce cas comment exploiter le résultat obtenu pour alimenter la nouvelle bdd c'est à dire le tableau "Patients" colonne "séance 1" ?

RE

Je l'ai dit on obtient un autre tableau qui croise la liste des patients et les classeurs externes...

Ceci si je comprends bien ce que tu veux. Les nouvelles séances alimenteront de nouvelles colonnes...

image

Ok ça me paraît bon, après je ne connais pas power query mais copier le résultat pour l'inclure dans la bdd pose problème si je maintiens la requete dans le temps non ?

Mon besoin est juste de récupérer l'ancienne bdd pour l'inclure dans la nouvelle, mais après je peux arrêter la requête car la nouvelle bdd s'alimentera toute seule par un autre programme.

RE

Quelle perte de temps à délivrer les infos au compte goutte pour finalement indiquer au bout de 24h que c'est one shot

Supprime les requêtes une fois le tableau obtenu et fais ce que tu veux de celui-ci...

11bilan-kine3.xlsx (22.23 Ko)

Pour que cela marche il faut commencer par mettre le chemin correct dans la cellule jaune puis compléter le liste des patients du même onglet et finalement Données, Actualiser Tout

Merci, malheureusement j'ai un message d'erreur à l'actualisation :

msg erreur

Je précise que j'ai remplacé le contenu de la cellule jaune par ceci : C:\Users\arnau\Downloads\séances

Le dossier "séances" contenant ensuite tous les dossiers patients, lesquels contiennent chacun notamment le fichier excel à leur nom...

re

Lancer PowerQuery (Données, Obtenir des données, Lancer PowerQuery), puis Fichier, Options et paramètres, Options de requête, partie GLOBAL : Confidentialité, Toujours ignorer les paramètres de niveau de confidentialité

Cela supprimera le message d'erreur.
A noter que cette option ne sert à rien dans la quasi totalité des cas et limite les possibilités, d'où son décochage.

Wahou ça marche trop bien c'est génial!

Merci beaucoup pour le temps passer à me débloquer cela!

Dsl pour les imprécisions dans la description de mon problème

Pour moi je pense que c'est bon, je mets résolu et encore merci!!

Merci du retour

Re Chris78, je viens de réaliser que la requête ne vient pas chercher les dossiers qui ne comportent pas de majuscule (enfin j'ai l'impression). Comment puis-je y remédier ? Sur un peu + de 1000 noms j'ai un résultat de 500 environ, donc manque la moitié et surtout suffit d'un décalage de 1 et le reste est faux

Merci!

Bonjour

L'énoncé de départ était que la liste était avec le nom en Majuscules contrairement aux noms des dossiers et fichiers qui étaient en nom propre dans ton exemple.

J'ai un fichier avec une liste de noms (par exemple DUPONT Antoine, BENZEMA Karim...) pour lesquels je dois récupérer la liste des séances effectuées.

Ces séances sont rangées chacune dans un fichier et dossier au nom de la personne (par ex dossier "Dupont Antoine", fichier "Dupont Antoine" - en minuscule cette fois-ci).

L'arborescence des dossiers est bien du type

  • séance
    • Dupont Antoine
      • Classeur "Dupont Antoine"
      • Autres classeurs et/ou autres dossiers
    • Benzema Karim
      • Classeur "Benzema Karim"
      • Autres classeurs et/ou autres dossiers

PowerQuery est case sensitive, j'en ai donc tenu compte.

A l'étape 3 de la requête Seances, coche correspondance approximative et Ignorer la casse

image

La requête ne donne pas de résultats faux : elle ignore les lignes qui ne matchent pas... Si tu as un décalage c'est ce que tu en fais après...

Rechercher des sujets similaires à "recuperer donnees fichiers dossiers feuilles differents"