Macro recherche fichier

Pour toutes vos questions à propos d'Excel ...

Macro recherche fichier

Messagepar MAxime Beaudoin » 17 Août 2009, 15:50

Bonjour une petite question,
j'ai présentement une macro qui va lire dans deux repertoires une fichier pdf, le nom du fichier est variable, donc une input box ouvre où j'entre un numéro et ensuite ma macro me sort tous les doc pdf qui trouve dans les 2 repertoire qui contient les numéro inscrit. Mon but est de rajouter un répertoire, mais c'est pas le nom du fichier qui est variable mais le nom du dossier, ensuite il prendrait tous les fichiers pdf de ce dossier.

Je voulais savoir si cela était possible si oui je joindrer mon fichier avec ma macro pour pourvoir mieux vous expliquer ce que je veux.

Merci d'avance
MAxime Beaudoin
Membre fidèle
 
Messages: 181
Inscription: 23 Avr 2009, 15:30
Version Excel: 2003 FR

Messagepar vba-new » 17 Août 2009, 20:41

Bonjour maxime, forum,

Il faudrait qu'on voit le fichier pour mieux t'aider.

Mais je te conseille d'ores et déjà d'aller faire un tour ici : http://boisgontierjacques.free.fr/pages ... rtoire.htm

Tu trouveras peut-être ce que tu cherches. Sinon, reviens, on adaptera!
vba-new
vba-new
Membre impliqué
 
Messages: 2586
Inscription: 13 Mai 2009, 10:27
Version Excel: 2010 FR

Messagepar MAxime Beaudoin » 17 Août 2009, 22:11

J'ai réussi ce que je voulais faire mais je découvre une autre chose que je voudrais améliorer dans mon code

Voici ma macro écris sur deux module

Module 1 :

Code: Tout sélectionner
Public NomFichierOuvrir As String

Sub RechercheFichier(MonFichier As String, Rep1 As String, Rep2 As String, Rep3 As String)
Dim oFS As Office.FileSearch
Dim NbResultat As Integer
Dim TableauResultat() As String

Set oFS = Application.FileSearch
With oFS
    'Recherche répertoire 1
    .NewSearch
    .Filename = MonFichier & "*.pdf"
    .LookIn = Rep1
    .Execute
   
    For i = 1 To .FoundFiles.Count
            NbResultat = NbResultat + 1
            ReDim Preserve TableauResultat(NbResultat)
            TableauResultat(NbResultat) = .FoundFiles.Item(i)
    Next i

    'Recherche répertoire 2
    .NewSearch
    .Filename = MonFichier & "*.pdf"
    .LookIn = Rep2
    .Execute
   
    For i = 1 To .FoundFiles.Count
            NbResultat = NbResultat + 1
            ReDim Preserve TableauResultat(NbResultat)
            TableauResultat(NbResultat) = .FoundFiles.Item(i)
           

    Next i
   
    'Recherche répertoire 3
    .NewSearch
    .Filename = "*.pdf"
    .LookIn = Rep3 & MonFichier & "\"
    .SearchSubFolders = True
    .Execute
   
    For i = 1 To .FoundFiles.Count
            NbResultat = NbResultat + 1
            ReDim Preserve TableauResultat(NbResultat)
            TableauResultat(NbResultat) = .FoundFiles.Item(i)
   
    Next i
End With

Select Case NbResultat
    Case 1
        NomFichierOuvrir = TableauResultat(1)
       
    Case Is > 1
        For i = 1 To NbResultat
            Label2.ListBoxFichier.AddItem (TableauResultat(i))
        Next i
   
        Label2.Show
       
    Case Else
        NomFichierOuvrir = "Introuvable"
End Select

End Sub



Module 2 :

Code: Tout sélectionner
Sub Ouverture_pdf_Test()
    Dim NomFichier As String
   
    NomFichier = InputBox("Entrer le nom du fichier PDF", "Ouverture PDF")
    If Not NomFichier = "" Then
        Call RechercheFichier(NomFichier, "P:\Dossiers\Rive-Sud\CONTRAT RS\", "P:\Dossiers\Rive-Nord\CONTRAT RN\", "P:\Job_CAN\")
        Select Case NomFichierOuvrir
            Case "Introuvable"
                MsgBox "Fichier introuvable"
            Case "Annule"
               
            Case Else

                ActiveWorkbook.FollowHyperlink Address:=NomFichierOuvrir
               
        End Select
   
       
    End If
End Sub




je veux améliorer 2 chose.

1) Toujours afficher une listbox même si j'ai une seul fichier trouvé.
2) Lorsque je sélectionne une fichier dans ma listebox, le fichier ouvre, mais ma listbox se ferme, mais jaimerais qu'elle reste ouverte pour que je puisse sélectionner d'autre fichier.

Merci
MAxime Beaudoin
Membre fidèle
 
Messages: 181
Inscription: 23 Avr 2009, 15:30
Version Excel: 2003 FR

Messagepar vba-new » 18 Août 2009, 22:10

Bonjour maxime, forum,

Je crains de ne pouvoir t'aider, je n'ai jamais manipulé de listbox :?

J'ai bien essayé de tester ton code mais ça me retourne une erreur "Objet requis" à cette ligne : Label2.ListBoxFichier.AddItem (TableauResultat(i))

Est-ce normal?
vba-new
vba-new
Membre impliqué
 
Messages: 2586
Inscription: 13 Mai 2009, 10:27
Version Excel: 2010 FR

Messagepar MAxime Beaudoin » 19 Août 2009, 14:26

Oui je crois que je sais, c'est parce que label2 est une userform et j'avais oublier de préciser que je ne l'avais pas envoyé.

Je joins un fichier avec la macro, tout est dedans et pour la tester tu as juste à modifier les répertoire.

Je ne suis pas obliger de garder la listebox, si il y a un autre moyen d'arriver au même résultat mais d'une autre façon ça me dérange pas.

http://www.excel-pratique.com/~files/do ... f_test.xls

Dit le moi s'il y a un problème
MAxime Beaudoin
Membre fidèle
 
Messages: 181
Inscription: 23 Avr 2009, 15:30
Version Excel: 2003 FR

Messagepar vba-new » 19 Août 2009, 20:48

Salut à toi, forum,

C'est plus facile avec un fichier!

Voici ton fichier en retour. Dis-moi si ya quelque chose qui ne va pas : http://www.excel-pratique.com/~files/do ... est_v1.xls
vba-new
vba-new
Membre impliqué
 
Messages: 2586
Inscription: 13 Mai 2009, 10:27
Version Excel: 2010 FR

Messagepar MAxime Beaudoin » 20 Août 2009, 16:52

2 problèmes.

1) Lorsqu'il y a seulement un fichier la macro effectue une boucle lors de l'ouverture du fichier alors le pdf ouvre correctement sauf que toute les fois ou je ferme le pdf il s'ouvre à nouveau.

2)Lorsque la Userform apparait, desfois, je n'ai pas trouver pourquoi, l'information se répète plusieurs fois, il me donne les fichiers en double ou en triple.

Merci
MAxime Beaudoin
Membre fidèle
 
Messages: 181
Inscription: 23 Avr 2009, 15:30
Version Excel: 2003 FR

Messagepar vba-new » 20 Août 2009, 21:07

Re,

Bon maxime, j'ai beau chercher mais je sais pas comment faire :?

Je laisse ma place aux spécialistes VBA!

Je continue à chercher, mais sans trop de conviction!
vba-new
vba-new
Membre impliqué
 
Messages: 2586
Inscription: 13 Mai 2009, 10:27
Version Excel: 2010 FR

Messagepar MAxime Beaudoin » 20 Août 2009, 21:15

Pas de problème et merci quand même
MAxime Beaudoin
Membre fidèle
 
Messages: 181
Inscription: 23 Avr 2009, 15:30
Version Excel: 2003 FR


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot], Google Adsense [Bot] et 6 invités