Recherchev sur X fichiers

Résolu
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   -  
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   -

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

A voir également:

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.

Généré automatiquement par IA
sur la base des meilleures réponses
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 

Yes, ça avance...

On a réussi à faire fonctionner T_Recup, reste T_Final

La seule fois où on fait référence à "Date contact", c'est la dernière étape de cette requête.

Regarde bien comment est nommée la première colonne, et remplace dans la formule :

= Table.TransformColumnTypes(Rename,{{"Date contact", type date}})

On va y arriver... :)


0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 

Dernière étape de la requête :

ModType

= Table.TransformColumnTypes(PromoHead,{{"Date contact", type date}})

remplacé par

= Table.TransformColumnTypes(Rename,{{"Date contact", type date}})

Expression.Error : Le nom « Rename » n'a pas été reconnu. Veuillez vérifier qu'il est correctement orthographié.

0
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 

Qu'est-ce que tu as mis dans la barre de formules?

Comment s'appelle la 1ère colonne?


0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 

= Table.TransformColumnTypes(Rename,{{"Date contact", type date}})

Comment s'appelle la 1ère colonne?

A quelle étape de la requête T_Final ?

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 

C'est bien dans la dernière étape.

Lorsque tu es dans l'éditeur PQ, ruban "Accueil", tu as un bouton "Éditeur avancé".

Quand tu cliques dessus, tu as accès à tout le code en 1 fois, et ce code c'est :

let
    Source = Excel.CurrentWorkbook(){[Name="T_Data"]}[Content],
    DemoteHead = Table.DemoteHeaders(Source),
    SupprCol = Table.SelectColumns(DemoteHead,{"Column1"}),
    AjtIdx = Table.AddIndexColumn(SupprCol, "Index", 1, 1),
    Fusion = Table.NestedJoin(AjtIdx, {"Column1"}, T_Recup, {"Column11"}, "T_Recup", JoinKind.LeftOuter),
    Expand = Table.ExpandTableColumn(Fusion, "T_Recup", {"Column1", "Column11", "Column53", "Column54"}, {"Column1.1", "Column11", "Column53", "Column54"}),
    Tri = Table.Sort(Expand,{{"Index", Order.Ascending}}),
    SupprCol2 = Table.SelectColumns(Tri,{"Column53", "Column54", "Column1.1"}),
    PromoHead = Table.PromoteHeaders(SupprCol2, [PromoteAllScalars=true]),
    Rename = Table.RenameColumns(PromoHead,{{"Name", "Fichier"}}),
    ModType = Table.TransformColumnTypes(Rename,{{"Date contact", type date}})
in
    ModType

Ici, tu peux changer directement "Date contact" de la dernière ligne, et remplacer par le nom exact du titre de la 1ère colonne


0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 

Ou je trouve le titre de la 1ère colonne ? ( colonne 11, colonne 53, colonne 54...?)

Sur le tableau ?

sur les requêtes, laquelle et à quel niveau ?

0
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 

Re-,

Ici, tu vois la colonne "Date contact"

Chez toi, elle s'appelle comment?

Et dans la requête "T_Final", tu cliques sur l'étape "ModType", et tu as ceci :

Dans la barre de formule, "Date contact" doit être remplacé par le nom de la 1ère colonne


0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 

Non, malheureusement, j'ai une erreur ! Et pas de résultat dans T_Final. En avant-dernière étape, j'ai "null" dans 3 colonnes ....

T_Recup c'est bon mais pas T_Final

0
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 

Ok,

Quand tu as une erreur, tu as un avertissement jaune?

Si oui, en cliquant sur "Atteindre l'erreur", ça donne quoi?

En plus, tu vas faire ces 2 manips:

- Dans T_Recup, tu sélectionnes la colonne 11 (qui correspond donc à la colonne J), tu cliques sur le petit symbole à côté du titre "ABC,123", et tu sélectionnes "Texte"

Dans la requête "T_Final", tu sélectionnes l'étape "AjtIdx" (comme Ajout Index), et pareil, tu cliques sur le petit symbole, et tu sélectionnes "Texte" (tu vas avoir un msg d'avertissement comme quoi PQ va te demander si tu veux insérer une étape, tu cliques sur "Insérer"


0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 

ça bloque à partir de l'étape Expand

0
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 

Ok, il met quoi comme msg d'erreur?


0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 

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

Toutes les étapes T_Final sont à revoir......Merci !

Je reprendrais tout ça demain,......

Bonne soirée !

0
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 

Re-,

Juste avant de quitter, et pour bien préparer la suite...

Peux-tu me montrer ce que donne :

Ruban "Formule", "Gestionnaire de noms" :

Bonne soirée


0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 


0
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 

Bonjour,

OK, vu tes zones nommées ou Tableaux, pas de soucis de ce côté.

On va donc travailler sur le T_Final.

Quand tu as sélectionné cette requête, et que tu sélectionnes l'étape "Fusion", puis en cliquant sur la première ligne contenant le mot "Table", tu as un aperçu en bas.

Tu peux me montrer ce qu'il y a?


0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 

Bonjour,

J'ai tout repris ce matin et j'avance....

J'ai tout remis au Format Texte vu que l'élément recherché avait 13 chiffres....

Dans EXPAND, il apparaissait beaucoup de "null", du coup j'ai filtré sans "null"

Et enfin j'ai récupéré les éléments recherchés !

Reste l'erreur dans la dernière étape :

Date contact en column53 semble correct ??

[Expression.Error]L'importation Rename ne correspond à aucune exportation. Avez-vous oublié une référence de module ?

0
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 

Re-,

Je n'ai rien oublié...

Dans les étapes de T_Final, comment se nomme l'étape juste avant ModType (étape où se situe l'erreur)?

Si cette étape a un nom différent de Rename, il faut mettre le nouveau nom en lieu et place.

Je ne sais pas si tu as remarqué, toutes les étapes sont reprises dans l'étape suivante (selon le code utilisé, mais en général, c'est la règle)


0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 

Eurêka j'ai trouvé !

Expand

J'ai filtré sans "null"

= Table.SelectRows(Expand, each ([Column1.1] <> null))

ModType

J'ai modifié

= Table.TransformColumnTypes(PromoHead,{{"Date contact", type date}})

Encore un grand Merci ! Pour ton expertise et ta patience !!

Il me reste à trouver de la documentation sur PoWer Query

0
cousinhub29 Messages postés 1135 Date d'inscription   Statut Membre Dernière intervention   364
 

Ah, et j'oubliais...

L'avantage avec PQ, c'est que tu deviens indépendant très rapidement.

Un tel "hot-line" eût été quasiment impossible avec du VBA. Ici, tout se fait (pratiquement) à la main, et pour bien commencer, c'est conseillé de tout faire manuellement, ensuite, on peut rentrer dans du langage codé bien plus élaboré.

Bonne journée


0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 

Le résultat se fait en quelques secondes !

Bonne journée !

0