VBA rechercher un fichier dans un répoertoire

Fermé
darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013 - 16 mai 2007 à 11:25
 XxVeg3tAxX - 9 mai 2016 à 17:14
Bonjour,
je voudrais savoir comment je peux trouver un fichier donc les caracteres correspondent a ce que j'ai entrer préalablement dans un formulaire afin d'utiliser le fichier correspondant. Suisje assez clair??
Merci d'avance

4 réponses

Utilisateur anonyme
16 mai 2007 à 14:09
Bonjour,

Exemple type :

Sub ChercheFichier()

    Const Chemin = "C:\Documents local\EXCEL"
    Dim NomChercher As String

    Dim oFs As Variant
    Dim NomFichier As String
    Dim I As Integer

    Set oFs = Application.FileSearch
    
    'Capturer ici le nom du fichier inscrit dans le formulaire
    'NomChercher = Chemin & "\" & MonFormulaire.MonTextBox.Value
    NomChercher = "C:\Documents local\EXCEL\Calendrier.xls"
    
    With oFs
        .LookIn = Chemin
        .FileType = msoFileTypeExcelWorkbooks
        If .Execute > 0 Then
            'MsgBox "Il y a  " & .FoundFiles.Count & " fichier(s) de trouvé."
            For I = 1 To .FoundFiles.Count
                NomFichier = .FoundFiles(I)
                If (UCase(NomFichier) = UCase(NomChercher)) Then
                    MsgBox NomFichier
                End If
            Next I
        Else
            MsgBox "Aucun fichier n'a été trouvé."
        End If
    End With
    
    MsgBox "Fin de recherche"

End Sub
'


Lupin
8
niny@ Messages postés 107 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008
2 avril 2008 à 08:25
bonjour à vous deux !

en fait j'ai un peu le même problème

j'ai fait un code qui cherche les fichiers xls d'un dossier pour le copier/coller/sauvegarder dans un autre dossier. mon pb est que je n'arrive pas à parcourir tout mon dossier. dés que ma recherche a atteint le bas du dossier, je garde toujours le même fichier en mémoire, donc ca ne fait pas ce que je souhaite.
j'ai essayé d'initialiser mon chemin, le fichier mais sans succés.

voici mon code :

Dim nouveau As Variant
Dim cherche As String
Dim fichier As String
Dim Chemin As String
Dim tmp As Integer

Chemin = "chemin complet" ' répertoire
nouveau = "chemin complet bis" ' nouveau répertoire
fichier = Dir(Chemin & "\*.xls") ' recherche premier
chaine = renseignement_tranche.TextBox1.Value


Do

If LCase(Mid(fichier, 1, 2)) = LCase(Mid(chaine, 1, 2)) Then
Workbooks.Open Chemin & fichier ' fichier ouvert et demande du nouveau nom
nouveau = Application.GetSaveAsFilename(nouveau, fileFilter:="classeurs (*.xls), *.xls", Title:="Saisissez votre nouveau nom")

If nouveau <> False Then ' fichier saisi ?
ActiveWorkbook.SaveAs nouveau ' sauvegarde nouveau
MsgBox "Sauvé sous " & nouveau ' message
ActiveWorkbook.Close ' fermeture
Else
MsgBox "Classeur non sauvegardé"
End If

End If

Exit Do ' sortie procédure

Loop

fichier = Dir() ' recherche fichier suivant

est ce que vous pourriez m'éclaircir sur ce pb svp ?

merci
0
niny@ Messages postés 107 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008 > niny@ Messages postés 107 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008
2 avril 2008 à 09:43
en fait il suffisait de prendre le code de lupin est de le modifier avec mon code pour la sauvegarde... ainsi que pour ma boucle de test.

en gros quelques petits rajouts sur le code de Lupin en fonction de ce que vous souhaitez faire!
-1