IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Word Discussion :

UserForm pour lancer une recherche dans plusieurs fichiers texte


Sujet :

Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Points : 66
    Points
    66
    Par défaut UserForm pour lancer une recherche dans plusieurs fichiers texte
    Bonjour à tous,

    Je cherche depuis quelques temps à faire une UserForm Word qui me permettrait de chercher un ou des mot(s) dans plusieurs fichiers texte se trouvant tous dans le même dossier.

    J'ai déjà une UserForm qui me permet de faire une recherche similaire dans une table Access avec le code suivant (où "TextBox1" sert à entrer le mot rechercher et "Liste1" à afficher toutes les entrées correspondantes)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Dim rs As DAO.Recordset
    Dim db As DAO.Database
     
    Dim stTemp02 As String
    Dim stSQL As String
     
     
     
    UserForm1.Liste1.Clear
     
     
    stSQL = "SELECT * From Table1 Where Champ1 LIKE """ & "*" & UserForm1.Textbox1 & "*" & """;"
     
    Debug.Print stSQL
    Set db = DAO.OpenDataBase("C:blabla.mdb")
    Set rs = db.OpenRecordset(stSQL)
    While Not rs.EOF
     
     UserForm1.Liste1.AddItem rs.Fields("ID")
     
     UserForm1.Liste1.List(UserForm1.Liste1.ListCount - 1, 1) = rs.Fields(Champ1)
     UserForm1.Liste1.List(UserForm1.Liste1.ListCount - 1, 2) = rs.Fields(Champ2)
     rs.MoveNext
    Wend
    Étant donné qu'il s'agit cette fois de plusieurs fichiers et non plus d'une seule table, je ne sais pas trop :
    1. comment indiquer qu'il doit parcourir TOUS les fichiers qui se trouvent dans le dossier spécifié (qui est d'ailleurs toujours le même)
    2. comment afficher les lignes trouvées dans ma liste1 (chaque ligne est composé de plusieurs champs séparés par des tabulations mais je suppose qu'il faut ici faire référence à la ligne entière ??!)

    Est-ce possible à partir du code ci-dessus et comment ?

    Merci beaucoup par avance pour votre aide.

    Guillaume

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pour parcourir les fichiers d'un répertoire, jette une oeil ici

    Pour la recherche d'un mot, il faut ouvrir le fichier, et faire la recherche dans le fichier.
    Pour chaque document trouvé dans le répertoire,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Documents.Open ()
    Ensuite, faire un Find dans le contenu du document.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Points : 66
    Points
    66
    Par défaut Pas possible donc ?
    Salut Oli !
    Si je comprends bien, il n'y a pas de solution pour faire apparaître directement les résultats dans la liste de la UserForm, c'est-à-dire sans avoir à ouvrir chacun des fichiers ? Pourtant, j'ai un programme de TAO qui n'est en fait "que" un ensemble de plusieurs macros et qui a un bouton permettant de chercher un mot dans tous les fichiers txt du dossier spécifié. Chaque ligne contenant le mot recherché dans les fichiers est ensuite affichée dans un nouveau document Word. Moi, j'aimerais un truc un peu comme ça mais bon là, la marcro est verrouillée bien entendu et je ne peux pas voir ce qu'il se cache derrière...

    Sinon, je pensais utiliser des fichiers excel à la place des fichiers txt. Même principe que tout à l'heure, tous les fichiers dans le même dossier et on lance une recherche à partir de l'UserForm. Est-ce que là, il serait possible d'afficher tous les résultats dans la liste comme on le fait à partir d'une table Access (avec DAO par exemple) ???

    Merci beaucoup.

    Guillaume

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Cette macro ouvre les fichier, mais sans le montrer, si tu affectes la propriété Visible à False, tu n'auras pas l'affichage.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Points : 66
    Points
    66
    Par défaut
    Merci Oli !
    J'ai regardé le lien que tu m'as donné mais apparemment le code en question recherche simplement dans le nom du fichier, moi je voudrais chercher dans le contenu. Et puis je ne sais pas comment on désigne une ligne du fichier texte pour la renvoyer vers la listbox.
    Est-ce que tu sais si avec des fichiers excel, ce serait plus facile à mettre en oeuvre (on peut désigner des fichiers et des colonnes en DAO, non ??)

    Merci pour ton aide !

    Guillaume

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Le premier lien, c'est pour chercher le nom des fichiers.
    Dès que tu as la liste des fichiers, avec une boucle, au départ de word, tu ouvres chaque fichier, tu fais la recherche et tu obtiens un index mots -- fichiers.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Points : 66
    Points
    66
    Par défaut
    Salut !

    Dans mon cas, ca ne m'avance pas vraiment de chercher le nom des fichiers parce que le code proposé cherche dans les noms de fichiers mais pas dans leur contenu.
    Je m'explique : ces fichiers txt sont des listes de mots avec leur traduction, genre une colonne allemand, une colonne français avec des précisions si nécessaire.
    Si par exemple, je recherche le mot "pêche", je voudrais tout d'abord que le code détermine tous les fichiers dans lequel le mot "pêche" apparaît (car il y a beaucoup de fichiers, plus de 500 !!) et qu'ensuite il ouvre chacun des fichiers où le mot apparaît, recherche la ligne ou les lignes en question et me l'affiche dans la listbox, si bien qu'à la fin j'ai tous les mots "pêche" trouvés avec les traductions correspondantes.
    J'espère que je suis à peu près clair....

    Je voulais garder ces fichiers au format Txt pour la simplicité de formatage qui permet d'importer les données dans d'autres programmes si besoin est. Cependant, là je me dis que peut-être ma recherche serait plus performante avec des fichiers excel ayant toujours les mêmes colonnes si bien que je pourrais préciser lors de la recherche dans quelle colonne chercher (français ou allemand ou autre) et la recherche serait donc plus rapide non ???

    C'est possible, ca ???

    Merci et encore merci.

    Guillaume

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pour la gestion de données, Access est plus approprié.

    Ce que j'avais expliqué, tu dois récupérer le nom des fichiers.
    L'exemple dans les sources sert à ça.

    Une fois le nom des fichiers obtenu, il faut ouvrir chaque fichier pour trouver le mot que tu cherches.
    Cette recherche, tu peux la faire ne Word, ou simplement en VBS.
    Tu vas alors obtenir une liste de fichiers avec ton mot.

Discussions similaires

  1. Recherche d'une clé dans plusieurs fichiers PDF
    Par AAWOOPY56 dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 17/03/2011, 15h59
  2. Réponses: 3
    Dernier message: 19/02/2010, 09h28
  3. Effectuer une recherche dans un fichier texte
    Par AlexTaz dans le forum Débuter
    Réponses: 14
    Dernier message: 18/06/2009, 14h15
  4. Réponses: 9
    Dernier message: 21/04/2008, 15h13
  5. [VBA]Macro pour lancer une recherche dans un tableau
    Par manhes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2007, 18h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo