Rechercher des valeurs tabulées dans des fichiers txt sans les importer

Bonjour,

Je fais appel aux savoirs des pro d'Excel pour trouver une solution mon problème.

Je cherche une solution pour lire / rechercher des données dans des fichiers texte ".txt" sans les importer.

Les fichiers ".txt" sont tabulés (en fait ce sont de fichiers ".csv") qui doivent rester avec l'extension ".txt"

Dans le tableau de mon fichier Excel, j'ai une colonne "Valeur chercher", une colonne "Nom fichier TXT ou rechercher" une colonne "Répertoire fichier TXT", une colonne "Chemin fichier TXT" (qui est une concatenation de "Répertoire fichier TXT"&"Nom fichier TXT ou rechercher").

Je voudrais que dans les colonnes "Résultat GUID" et "Résultat DATATYPE" donne les résultats de recherche dans les fichiers textes sans les importer dans Excel et sans les ouvrir.

J'ai essayer d'utiliser les fonctions "EQUIV" et "INDEX", mais je ne trouve pas la syntaxe a utiliser dans la formule pour pouvoir utiliser le fichier texte qui est dans la colonne "Chemin fichier TXT" et pour que cela fonctionne sans ouvrir les fichiers ".txt" dans Excel.

Je joins a ma question un fichier Excel qui contient mon tableau et un dossier qui contient des exemple de fichiers ".txt" (j'ai mis les même fichiers que j'ai renommés).

18qst-excel.zip (37.54 Ko)

D'avance merci a ceux qui peuvent me donner une solution.

Bonjour iStar

Une petite présentation ICI serait la bienvenue

Voici le fichier avec un peu de VBA

J'attire votre attention que dans le 2ème fichier, il existe 2 fois la valeur cherchée "EC_Pertes" comment faire dans ce cas là ?

@+

Bonjour BrunoM45,

Merci pour ton aide, je regarde ton fichier dans l'après midi.

Dans le fichier il n'y a qu'une seule fois "EC_Pertes". L'autre valeur est "EC_Pertes en charge à 75°C". Les valeurs sont uniques et sont générés par un autre logiciel

Pour ma présentation c'est corrigé https://forum.excel-pratique.com/presentations/presentation-laurent-istar-152513

Re,

J'ai modifié le code pour tester la valeur recherchée avec la valeur trouvée

Car en effet, dans la chaine de caractères que forme la ligne, on ne peut pas faire une recherche exacte, on peut juste trouver une correspondance.
Pour VBA "EC_Pertes" est bien trouvée dans "EC_Pertes en charge à 75°C"

@+

(Re)Bonjour BrunoM45,

J'ai regardé ta proposition.

En fait tu traites les testes comme des lignes de texte. Or mes fichiers txt sont en fait des fichiers CSV. Ce sont vraiment des tableaux. Si tu les ouvres dans Excel j'ai bien des lignes et colonnes.

L'instruction dans ta boucle while fait que la boucle s'arrête dès que la valeur recherchée est incluse dans la ligne trouvée :

' Lire le contenu de la ligne
      Line Input #IndFree, StrLig
      ' Si on y trouve la valeur cherchée
      If InStr(1, StrLig, ValSearch) > 0 Then

Ce qui engendre l'erreur que tu avais :

J'attire votre attention que dans le 2ème fichier, il existe 2 fois la valeur cherchée "EC_Pertes" comment faire dans ce cas là ?

Alors qu'en fait il y a "EC_Pertes" et "EC_Pertes en charge à 75°C"

Il faudrait un code qui recherche la "Valeur chercher" exacte, dans la colonne "C" des fichiers ".txt" (Tableau CSV) puis récupère les valeurs des colonnes B et D de la ligne trouvée.

Je pense qu'il faut un code qui traite les fichiers ".txt" comme des tableaux et pas comme du texte.

Si tu as une piste, je suis preneur

En tout cas merci beaucoup pour ton aide

Re,

En fait tu traites les testes comme des lignes de texte. Or mes fichiers txt sont en fait des fichiers CSV. Ce sont vraiment des tableaux. Si tu les ouvres dans Excel j'ai bien des lignes et colonnes.

Je ne comprends pas ta logique tu nous as bien dis initialement :
Je cherche une solution pour lire / rechercher des données dans des fichiers texte ".txt" sans les importer.
Les fichiers ".txt" sont tabulés (en fait ce sont de fichiers ".csv") qui doivent rester avec l'extension ".txt"

J'ai donc traité des fichier texte.

Ensuite,

L'instruction dans ta boucle while fait que la boucle s'arrête dès que la valeur recherchée est incluse dans la ligne trouvée :

' Lire le contenu de la ligne
      Line Input #IndFree, StrLig
      ' Si on y trouve la valeur cherchée
      If InStr(1, StrLig, ValSearch) > 0 Then

Ce qui engendre l'erreur que tu avais :

J'attire votre attention que dans le 2ème fichier, il existe 2 fois la valeur cherchée "EC_Pertes" comment faire dans ce cas là ?

Alors qu'en fait il y a "EC_Pertes" et "EC_Pertes en charge à 75°C"

Cela a été corrigé dans la 2ème version

Il faudrait un code qui recherche la "Valeur chercher" exacte, dans la colonne "C" des fichiers ".txt" (Tableau CSV) puis récupère les valeurs des colonnes B et D de la ligne trouvée.

Je pense avoir donnée une solution, elle ne te convient pas, soit. J'y ai passé du temps, je n'en passerai pas d'autre

Je pense qu'il faut un code qui traite les fichiers ".txt" comme des tableaux et pas comme du texte.

Oui peut-être mais alors, il ne fallait pas commencer ce post comme tu l'as fait !

Désolé BrunoM45 si j'ai mal expliqué ce que je cherché à obtenir.

Quand je disais traiter les fichier comme txt c'était ne pas modifier l'extension des fichiers pour les traiter en fichier csv.

Je n'avais pas vu ton post avec la version 2. Soit mon navigateur ne c'était pas rafraichi lorsque j'ai répondu, soit je suis mirro. Je vais regarder ce que tu proposes dans ta V2.

Grace à ton premier code, j'ai résolu un autre problème que j'avais sur un autre projet Excel.

En tout cas merci pour ton aide, c'est cool de ta part.

Je regarde la V2 pour voir si je peux faire ce que je recherhce avec

A+

Bonjour BrunoM45,

J'ai testé ton code VBA de la version 2 cela fonctionne nickel.

Qulques petites adaptations pour l'intégrer a mon code VBA etj'obtient exactement ce que je voulais.

Un grand merci

Merci Laurent pour ton retour... tu me rassures

Il faut parfois savoir ne pas trop se précipiter

@+

Rechercher des sujets similaires à "rechercher valeurs tabulees fichiers txt importer"