Trouver les fichiers en mode dynamique ?

alucard_xs

XLDnaute Occasionnel
Bonjour,

voilà je cherche à lister (pour plus tard les manipuler) tout les fichiers .xls que j'ai dans un repertoire, pour cel j'ai donc mis une boite de choix, pour cibler son repertoire, ensuite il m'indique le nom du repertoire que je veux scanner, par contre je n'arrive pas à dénombrer et à afficher les fichiers xls qui sont présents dans ce repertoire, j'ai bien trouver comment afficher et compter des fichiers .xls dans un repertoire donner mais je n'arrive pas à joindre les deux programmes, afin que mon nom de repertoire soit variable ... pour le moment il m'insique et me marque les fichiers présents dans N: et pis c'est tout ...

Merci de m'aider

voci mon code :
-----
Code:
sub essai1212()
choix = ChoixDossierFichier("d:\09OfficeVBA", 1) '<- ici le chemin de ton choix
If choix <> "" Then MsgBox choix
    
Dim p As String, x As Variant
p = "N:/*xls"
x = GetFileList(p)
Select Case IsArray(x)
Case True 'files found
MsgBox UBound(x)
Sheets("feuil1").Range("A:A").Clear
For i = LBound(x) To UBound(x)
Sheets("feuil1").Cells(i, 1).Value = x(i)
Next i
Case False 'no files found
MsgBox "No matching files"
End Select
End Sub

-----
Function ChoixDossierFichier(Racine, Optional SelType As Byte = 0)
Dim objShell, objFolder, Chemin, SecuriteSlash, FlagChoix&, Msg$

    If SelType = 0 Then
      FlagChoix = &H1&: Msg = "Choisissez un dossier :"
    Else
      FlagChoix = &H4000&: Msg = "Choisissez un fichier :"
    End If
                                            
    Set objShell = CreateObject("Shell.Application")
    'le troisième paramètre permet de choisir
    'la s&eacute;lection d'un dossier ou d'un fichier (0 ou 1)
    'le dernier paramètre permet de choisir le dossier racine
    Set objFolder = objShell.BrowseForFolder(&H0&, Msg, FlagChoix, Racine)
    On Error Resume Next
    Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & ""
    If objFolder.Title = "Bureau" Then
        Chemin = "C:\Windows\Bureau"
    End If
    If objFolder.Title = "" Then
        Chemin = ""
    End If

    SecuriteSlash = InStr(objFolder.Title, ":")

    If SecuriteSlash > 0 Then
        Chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""
    End If
    ChoixDossierFichier = Chemin
End Function


'==================


Function GetFileList(FileSpec As String) As Variant
' Returns an array of filenames that match FileSpec. ' if no matching files are found, it returns false
Dim Filearray() As Variant, Filecount As Integer
Dim Filename As String

'On Error Goto NoFilesFound Filecount = 0
Filename = Dir(FileSpec)
If Filename = "" Then GoTo NoFilesFound

' loop until no more matching files are found
Do While Filename <> ""
    Filecount = Filecount + 1
    ReDim Preserve Filearray(1 To Filecount)
    Filearray(Filecount) = Filename
    Filename = Dir()
Loop
GetFileList = Filearray
Exit Function ' Error handler
NoFilesFound:
GetFileList = False
End Function
 
Dernière édition:

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

Merci j'essaierai dès demain, par contre l'embetant de cette méthode c'est que ça va m'ouvrir tout les fichiers, et vu que je vais en avoir une bonne centaine, merci le ramage du pc, n'y a t'il pas de moyen de faire ça en transparence ?

C'est à dire sans ouvrir necessairement les fichiers
 
Dernière édition:

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

Merci j'essaierai dès demain, par contre l'embetant de cette méthode c'est que ça va m'ouvrir tout les fichiers, et vu que je vais en avoir une bonne centaine, merci le ramage du pc, n'y a t'il pas de moyen de faire ça en transparence ?

C'est à dire sans ouvrir necessairement les fichiers
:D pour un débutant (c'est bien ce que tu as dit ?...) je te trouve bien exigeant tout d'un coup. Bon, je te propose d'envoyer ta paye au forum et on te fait le boulot :D
Plaisanterie mise à part, pose une nouvelle question, qu'on sorte de celle-ci et demande "Travailler sur classeur fermé" en recherche sur le forum. Ça a dû être traité plus d'une fois (je ne suis qu'un pauv' débutant sur le forum et je ne sais pas encore tout)
En attendant, si tu mets Application.screenUpdating = false en début de procédure de copie et le remet à True en fin de procédure, ça devrait déjà accélérer les choses... en attendant ;)
Je regarde si je trouve une réponse qui t'irait
@+
Bonne soirée
 

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

Bon, j'ai bien trouvé mais les exemple ont visiblement été échangés par mail :eek: C'est malin ! :mad:
Je te propose donc un lien chez des amis
Bon courage et bonne lecture mais pose une nouvelle question, cela n'a plus rien à voir avec ton problème du début ;)
Et tâche de mettre le code sur le forum, que d'autres puissent en profiter :rolleyes:
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG