Rechercher : dans
Par :

VBA rechercher un fichier dans un répoertoire

Dernière réponse le 2 avr 2008 à 19:55:14 darkspoilt, le 16 mai 2007 à 11:25:46 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « VBA rechercher un fichier dans un répoertoire » dans :
[VBA] RechercheV Polyvalente VoirRECHERCHE POLYVALENTE Pour les accros et les inconditionnels des fonctions d'Excel, avant de crier au scandale, lisez les quelques lignes suivantes. La RechercheV d'origine a beaucoup de limites: La colonne de la donnée doit être avec un offset...
Recherche de fichiers avec Windows Vista VoirRecherche de fichiers avec Windows Vista L'outil de recherche de Windows Vista Rechercher dans le menu Démarrer Personnaliser la recherche dans le menu Démarrer Recherche depuis l'interface La recherche contextuelle Annuler un filtre de...
Ouverture d'un fichier VoirOuverture d'un fichier existant crée avec le même logiciel Il existe fondamentalement deux méthodes pour ouvrir un fichier sous Windows : Choisissez dans le menu du logiciel concerné Fichier > Ouvrir et naviguez jusqu’au fichier concerné dans la...

1

Lupin.A, le 16 mai 2007 à 14:09:57

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

Répondre à Lupin.A

2

niny@, le 2 avr 2008 à 08:25:47

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

Répondre à niny@

4

niny@, le 2 avr 2008 à 09:43:09

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!

Répondre à niny@

3

gbinforme, le 2 avr 2008 à 08:55:15

Bonjour

En fait, tu as pris ce code sur un autre sujet et il ne correspond pas du tout à la solution d'école de Lupin.A, (que je salue amicalement).

Par contre si tu mettais les instructions dans l'ordre cela fonctionnerait beaucoup mieux :

Exit Do ' sortie procédure
End If

fichier = Dir() ' recherche fichier suivant
Loop

et non 

End If
Exit Do ' sortie procédure
Loop
fichier = Dir() ' recherche fichier suivant

Toujours zen

Répondre à gbinforme

5

niny@, le 2 avr 2008 à 09:45:19

Merci gbinforme

j'ai préféré modifier le code de lupin en fonction de mes souhaits et ca marche mieux

@+

Répondre à niny@

6

Lupin.A, le 2 avr 2008 à 15:52:15

Bonjour à tous,

(spécialement à gbinforme)

Il est toujours très difficile de cibler avec précision les besoins.

De plus, il est toujours bon dans un apprentissage de partir
d'un code existant et de le modifier selon ses besoins.

Amicalement.

Lupin

Répondre à Lupin.A

7

 niny@, le 2 avr 2008 à 19:55:14

C'est vrai ! je suis d'accord avec toi, on apprend d'avantage et comprend mieux ce qu'on fait!
le mixte des deux codes marche à merveille, merci à vous deux !!

Répondre à niny@