Code de recherche de fichier en VB6 [Résolu]

Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
- 22 mars 2006 à 11:02 - Dernière réponse :
Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
- 22 mars 2006 à 15:35
Bonjour,

Je souhaiterais savoir si vous pourriez m'aider pour la creation d'un code assez simple en VB6 :

Je possede un grand nombre de fichiers et je souhaiterais qu'ils s'ouvre rapidement.
Je souhaite créer un exe qui ouvrirais une boite de dialogue ou je rentrerais un nom du fichier (sans extension) et qui, après validation me proposerais une liste des nom "avoisinant" l'orthographe.

exemple de fichier :

PS41020.doc
PS41020-R01.doc
PS41020-R02.doc

si je rentre "PS41020", je voudrais que le programme me propose les 3 fichiers et que je puisse selectionner celui que je veux et l'ouvrir.

Si aucun fichier ne correspond à la recherche, le programme renverra un message d'erreur.

nota : ces fichiers sont classé dans un meme repertoire avec des sous-repertoires pour les pré-classer
certains fichiers sont en extension .pdf ou .xls....je souhaiterais avoir tous les fichiers quelque soit leur extension.

Comme je débute je suis perdu :(

Merci de votre aide

Fabrice
Afficher la suite 

17 réponses

Meilleure réponse
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
22 mars 2006 à 14:56
3
Merci
Re,

BEn ensuite il te faudras inclure les objets qui vont bien pour lire tout les fichier (.doc, pst, ....)

Amuses toi bien .....

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée

Merci jrivet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
22 mars 2006 à 11:16
0
Merci
Salut,

Ton probleme est bien exposé, mais tu coinces ou exactement?

- Sais tu parcourir les repertoires pour lister les fichiers (=> Moteur de recherche)
- Sais tu Savoir si une chaine de caractere contient en contient une specifiee (=> Moteur de recherche ou Instr())

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
22 mars 2006 à 11:19
0
Merci
merci pour la reponse...

en fait je debute et je patauge completement !
j'ai plus l'habitude de faire du VB avec Excel

A mon avis le code doit etre assez simple a réaliser mais je ne sais pas du tout par ou commencer.... :'(
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
22 mars 2006 à 11:38
0
Merci
Salut,


Dans un projet VB6 ajoute la reference Microsoft Scripting Runtime (Menu Projet References)


Ajoute


- une listbox que tu appelles Li
- Un Bouton que tu appelles cmdRechercher
- Un TextBox que tu appelles txtFichier


Et le code si dessous: (teste et regardes si ca te convient, sachant qu il faudra surement l'adapter a tes besoins)

Private Sub CmdRechercher_Click()
Call Li.Clear
Call RechercheFichier("C:\Test", TxtFichier)
End Sub


Private Sub RechercheFichier(StrRep As String, StrFichier As String)


Dim Fs As New FileSystemObject
Dim Fo As Folder
Dim Fi As File
Dim SubFo As Folder


Set Fo = Fs.GetFolder(StrRep)


For Each Fi In Fo.Files
If InStr(1, Fi.Name, StrFichier) Then Call Li.AddItem(Fi.Name)
Next


For Each SubFo In Fo.SubFolders
Call RechercheFichier(SubFo.Path, StrFichier)
Next


Set Fs = Nothing
Set Fi = Nothing
Set Fo = Nothing
Set SubFo = Nothing
End Sub



@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
22 mars 2006 à 12:05
0
Merci
merci !

je viens de rentrer ce code :

Private Sub CmdRechercher_Click()
Call Li.Clear
Call RechercheFichier("U:\APRES-VENTE\Technique\Programmes PI PS", txtFichier)
End Sub

Private Sub RechercheFichier(StrRep As String, StrFichier As String)

Dim Fs As New FileSystemObject
Dim Fo As Folder
Dim Fi As File
Dim SubFo As Folder

Set Fo = Fs.GetFolder(StrRep)

For Each Fi In Fo.Files
If InStr(1, Fi.Name, StrFichier) Then Call Li.AddItem(Fi.Name)
Next

For Each SubFo In Fo.SubFolders
Call RechercheFichier(SubFo.Path, StrFichier)
Next

Set Fs = Nothing
Set Fi = Nothing
Set Fo = Nothing
Set SubFo = Nothing
End Sub


Ca fonctionne effectivement : mais c'est très long a afficher : peut on mettre une barre de progression par exemple ?

Merci
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
22 mars 2006 à 12:15
0
Merci
Salut,

Ajoute la bibliotheque de composant suivante:
Microsoft Windows Common Controls X.X

Rajoute dans ta feuille un label appelle traite et une progress bar appelle pb ensuite modife le coe:

Private Sub RechercheFichier(StrRep As String, StrFichier As String)


Dim Fs As New FileSystemObject
Dim Fo As Folder
Dim Fi As File
Dim SubFo As Folder
Traite.Caption = "Recherche dans: " & StrRep
Pb.Value = 0
Set Fo = Fs.GetFolder(StrRep)
If Fo.Files.Count > 0 Then Pb.Max = Fo.Files.Count + 1


For Each Fi In Fo.Files
If InStr(1, Fi.Name, StrFichier) Then Call Li.AddItem(Fi.Name)
Pb.Value = Pb.Value + 1
Next
Me.Refresh
For Each SubFo In Fo.SubFolders
Call RechercheFichier(SubFo.Path, StrFichier)
Next


Set Fs = Nothing
Set Fi = Nothing
Set Fo = Nothing
Set SubFo = Nothing
End Sub

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
22 mars 2006 à 12:27
0
Merci
je ne trouve pas cette reference dans la liste..

surement un truc a installer je pense
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
22 mars 2006 à 13:43
0
Merci
Re,

Ce n est pas une reference c est un composant (menu Projet Composants ou Ctrl + T)

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
22 mars 2006 à 13:54
0
Merci
je les ai tous rajouté (toutes les versions)

il me retourne une erreur 424 sur cette ligne :

Traite.Caption = "Recherche dans: " & StrRep
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
22 mars 2006 à 14:01
0
Merci
Re,

Traite est iil bien le nom du Label que tu as rajoute?
Note: Tu n es pas obliger de mettre ce label c est juste pour indiquer ou le programme en est dans sa recherche (quel repertoire) pour teste deja tu peux essayer d'enlever cette ligne.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
22 mars 2006 à 14:30
0
Merci
Maintenant l'erreur se repercute dans la seconde ligne...

meme erreur 424

:(
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
22 mars 2006 à 14:43
0
Merci
Beh j vois pas parce que moi j ai pas d'erreur.

Tu as bien reussi a inclure un ProgressBar ou pas?

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
22 mars 2006 à 14:53
0
Merci
Ca y est ca fonctionne ;)

par contre ensuite je souhaite afficher un des documents resultant de ma recherche....ce qui figure dans le menu déroulant....

lol

sorry pour toutes mes questions
Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
22 mars 2006 à 14:53
0
Merci
Ca y est ca fonctionne ;)

par contre ensuite je souhaite afficher un des documents resultant de ma recherche....ce qui figure dans le menu déroulant....

lol

sorry pour toutes mes questions
Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
22 mars 2006 à 15:12
0
Merci
Encore merci pour ton aide précieuse...
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
22 mars 2006 à 15:25
0
Merci
Bah de rien, nous sommes la pour ca.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
19
Date d'inscription
mercredi 16 novembre 2011
Dernière intervention
16 novembre 2011
22 mars 2006 à 15:35
0
Merci
par contre si une ame charitable se sent l'ame de me donner le code pour l'ouverture des documents je prends ! lol

j'abuse quand meme...lol

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.