Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1440 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  parcours fichiers dans un repertoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

parcours fichiers dans un repertoire

n°1570310
mirounet1
Posté le 05-06-2007 à 13:52:06  profilanswer
 

bonjour,
je cherche à faire un programme qui parcourt des fichiers 1 par 1 dans un repertoire .
environ 500 fichier
 
merci

mood
Publicité
Posté le 05-06-2007 à 13:52:06  profilanswer
 

n°1570335
jpcheck
Pioupiou
Posté le 05-06-2007 à 14:40:28  profilanswer
 
n°1570350
mirounet1
Posté le 05-06-2007 à 15:08:33  profilanswer
 

merci

n°1570514
kiki29
Posté le 05-06-2007 à 18:02:37  profilanswer
 

En VBA , à adapter


'==================================================================================
'
'   Dans environnement VBA
'   Outils | Références COCHER Microsoft Scripting Runtime
'
'   Sinon VBScript téléchargeable à
'   http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp
'
'==================================================================================
 
Option Explicit
 
Dim NbFichiers As Long
Dim DossierOk As String
 
Const NomFichierRch = "Classeur*"
Const DossierRacine As String = "C:\Faq\FaqVba\Exemples"
Const NomFeuille As String = "Feuil1"
Const TypeFichier As String = "XLS"
 
Public Sub btnImport_QuandClic()
Dim Debut As Variant
Dim i As Long
Dim NomFichier As String
Dim NomDossier As String
 
    Debut = Time()
    Application.ScreenUpdating = False
    NbFichiers = 0
 
    DossierOk = BackSlashDossier(DossierRacine)
 
    ListeFichiersDansDossier DossierOk, True
 
    Application.StatusBar = "Terminé : " & Format((Time() - Debut) * 100000, "0.00" )
    Application.ScreenUpdating = True
End Sub
 
Private Function BackSlashDossier(ByVal TstDossier As String) As String
    If Right(TstDossier, 1) <> "\" Then TstDossier = TstDossier & "\"
    BackSlashDossier = TstDossier
End Function
 
Private Sub ListeFichiersDansDossier(ByVal NomDossierSource As String, ByVal InclureSousDossiers As Boolean)
Dim FSO As Scripting.FileSystemObject
Dim DossierSource As Scripting.Folder, SousDossier As Scripting.Folder
Dim Fichier As Scripting.File
Dim Extension As String
Dim r As Long, VerifNom As Boolean
 
    On Error GoTo erreurs
    Set FSO = New Scripting.FileSystemObject
    Set DossierSource = FSO.GetFolder(NomDossierSource)
 
    r = Range("A65536" ).End(xlUp).Row + 1
 
    For Each Fichier In DossierSource.Files
        Extension = UCase(FSO.GetExtensionName(Fichier))
        VerifNom = Fichier.Name Like NomFichierRch
        If Fichier.Name <> ThisWorkbook.Name Then
            If VerifNom Then
                If InStr(Fichier.Name, Chr(39)) > 0 Then Fichier.Name = Replace(Fichier.Name, Chr(39), "" )
                If UCase(TypeFichier) = Extension Then
                    With ShImport ' Feuille recueillant les données
                        .Cells(r, 1)= Fichier.Name
                        .Cells(r, 2)= Fichier.ParentFolder
                        .Cells(r, 3)= Fichier.DateCreated
                        .Cells(r, 4)= Fichier.Size
                        NbFichiers = NbFichiers + 1
                        r = r + 1
                    End With
                    Application.StatusBar = "Lecture noms : " & r
                End If
            End If
        End If
    Next Fichier
 
    If InclureSousDossiers Then
        For Each SousDossier In DossierSource.SubFolders
            ListeFichiersDansDossier SousDossier.Path, True
        Next SousDossier
        Set SousDossier = Nothing
    End If
 
    Set Fichier = Nothing
    Set DossierSource = Nothing
    Set FSO = Nothing
    Exit Sub
 
erreurs:
    Select Case Err.Number
        Case 76
            MsgBox "Dossier inexistant" & vbCrLf & "Modifier dans VBA le chemin" & vbCrLf & "Const Dossier = " & DossierRacine, vbOKOnly, "Dossier des Fichiers"
        Case Else
            MsgBox Err.Number & vbCrLf & vbCrLf & Err.Description
    End Select
End Sub


Message édité par kiki29 le 28-08-2008 à 15:44:17
n°2078646
berwerk
Posté le 27-05-2011 à 13:55:02  profilanswer
 

Bonjour, dans le même style, est-il possible d'implémenter cette liste avec uniquement les fichiers qui ont été modifiés depuis le dernier import.
J'ai cherché en vain sur des forums et codes mais sans résultats.
 
Merci d'avance

n°2078799
kiki29
Posté le 27-05-2011 à 19:07:35  profilanswer
 

Salut, indique dans une cellule par exmple F1 la date à prendre en compte
et ajoute

If Fichier.DateLastModified >= ShImport.Range("F1" ) Then

ou il faut dans la boucle de test


Message édité par kiki29 le 27-05-2011 à 20:40:40
n°2079207
berwerk
Posté le 30-05-2011 à 17:09:05  profilanswer
 

Bonjour kiki29, j'ai trouvé une solution:

Code :
  1. If DateDiff("D", Nomfichier.DateLastModified, Now) < 8 And Right(Nomfichier, 4) = ".csv" Or Right(Nomfichier, 4) = ".CSV" Then


 
Merci pour ton aide


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  parcours fichiers dans un repertoire

 

Sujets relatifs
Aide pour fichiers PASCALconcatener deux fichiers
[dreamweaver] pb. d'encodage de mes fichiersenregistrement d'un nouveau fichier dans le repertoire d'origine ?
creer logiciel pour lire des fichiers audios (mp3 et compagnie)Problème de création de boucles
Diffusion / Mise à disposition de fichiers via interface type web[SQL Server] - fusionner fichiers MDF et NDF
Browser automatiquement un répertoire[Résolu] Conflit entre deux fichiers js (plusieurs onLoad)
Plus de sujets relatifs à : parcours fichiers dans un repertoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR