Rechercher un fichier en VBA dans un dossier

Fermé
super pompier - 30 avril 2008 à 11:45
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 2 mai 2008 à 08:41
Bonjour,
Et bon appetit à ceux qui s'apretent à manger.

Je suis sue excel et visual basic en vba (logique...).
J'ai une base de données où j'ai une série de pièces. Si je clique sur cette pièce, j'ouvre un autre fichier qui me montre un plan de l'outil (jusqu'ici tout va bien)

Seuleument, les plans sont dans un dossier principal, lui même contient des dossiers qui contiennent encore des dossiers... Certes, c'est a peu pres ordonné (La piece C123456.top est dans le dossier C123000\C123400\ ).
Il y a un autre problème, cestains fichier sont en .jpeg ou .emf ou.top...

Je souhaiterais donc savoir comment faire dans un premier temps une recherche du fichier dans les dossier au lieu de décortiquer le nom de la piece pour retrouver un chemin tres long...
Et dans un second temps arriver à deviner l'extension pour ouvrir le programme aproprié (si c'est .top, j'ouvre TopSolid)...

Pour info, je suis super pompier certes, mais supernovice VBA...

Merci à ceux qui pourraient m'aider. Je suis au travail

15 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
30 avril 2008 à 14:44
Bonjour voilà un exemple de recherche de fichier dans un répertoire principal et dans les sous-repertoires:

Private Sub CommandButton1_Click()
Dim i As Long
Dim fs
Set fs = Application.FileSearch
With fs
    .LookIn = "C:\Plans"
    .SearchSubFolders = True
    .Filename = "C123456.*"   'Mettre ici la variable contenant le n° de plan
    If .Execute() > 0 Then
        MsgBox "There were " & .FoundFiles.Count & _
         " file(s) found."
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "There were no files found."
    End If
End With

End Sub


A toi de l'adapter à ton application

;o)

polux
2
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
30 avril 2008 à 14:56
Bonjour Polux,
Pas mettre la charrue avant les boeufs.. :-D
D'abord trouver le chemim complet + le nom..
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204 > lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020
30 avril 2008 à 15:11
je ne mets pas la charrue avant les boeufs ... il suffit de tester le bout de code.

Avec le numéro de l'outil, on cherche le numéro de plan dans des sous répertoires, si j'ai bien compris.
Ici je fais une recherche avec l'extention .* par exemple et les msgbox affiche de nombre de fichiers trouvé et ensuite affiche le chemin d'accès, toujours pour l'exemple ... il suffit d'adapter le code pour récupérer le bon fichier et l'ouvrir avec le bon outil, le select case est une solution.
0