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:

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Trouver les fichiers en mode dynamique ?

bonjour JeanPierre, re le Fil

Merci à toi Jean Pierre d'avoir essayé ma Démo et de tes commentaires, oui je trouve assez utile de pouvoir créer des Hyperlinks à la volée, pour faire une feuille de navigation dans un Classeur "Maître"

J'avais pas mal travaillé sur le listing de Fichier pour Sylvie dans ce Fil :

hhttp://www.excel-downloads.com/forum/41309-vba-macro-copier-coller-plage-non-vide-4.html

Pour Alucard, oui c'est carrémement normal, le Pop-Up généré par l'Objet "Shell BrowseForFolder" n'est PAS un UserForm, mais une fenêtre Windows, donc non là on ne peut pas par VBA lui ajouter des Options autres que celles prévues.

Bonne Fin de Journée
@+Thierry

EDITION pardon pas raffraichi, tu parles à qui Epaf ? :

Ah ! J'ai trouvé un invénient à ta méthode... :p Si on se trompe de ligne, on ne vérifie pas le nom du fichier qu'on va ouvrir. Tu peux nous arranger ça ? :D
Bon week-end

Si c'est pour ma méthode, ben évidemment non, tu verrais toi un site avec des Hyperlinks qui demanderait confirmation à chaque click ?
 
Dernière édition:

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Trouver les fichiers en mode dynamique ?

Re Bonjour MJ13, le Fil

Merci à toi aussi d'avoir pris le temps de tester...

Je vais devenir Ouf avec la migration sur Excel 2007 alors lol !!!

Voici déjà dans l'état que ça me met :


Arf plus de FileSearch !
Merci ;-)
@+Thierry
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

à priori msoffice2k7 n'a pas l'air très compatible ... bon sinon je reste avec la solution du départ, mes fichiers xls listés dans le repertoire de mon choix s'affichent sur le côté, si je veux les ouvrir, je clique dessus, j'ai créer une userform avec 5 boutons, je vais affecter une macro par bouton, si j'y arrive bien entendu.

ça se passe comment pour affecter une macro à un bouton ? (je re-précise que je voudrais que la macro s'applique sur les fichiers listés précedemment) -tjrs cette histoire de répertoire en fait lol
 
Dernière édition:

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

Pour Alucard, oui c'est carrémement normal, le Pop-Up généré par l'Objet "Shell BrowseForFolder" n'est PAS un UserForm, mais une fenêtre Windows, donc non là on ne peut pas par VBA lui ajouter des Options autres que celles prévues.
Alors je joins mon fichier hyperlinks compris, qui permet en outre d'ajouter les boutons qu'on veut :p
Lien supprimé
@+

PS - Pour la présentation, c'est toi qui vois

Edit
Fonctionne sous 2003, mais pas sur 2007...
 
Dernière édition:

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

ok mais bon je ne vois tjrs pas comment rajouter des buttons ... faut dire ausis la journée a été longue ...
Affiche la boîte à outils "Contrôles" ou "Commande" selon la version.
Dans cette boîte à outils, tu as des boutons.
Pour placer du code derrière le bouton, tu fais deux clics dessus.
Attention, pour modifier le code ou l'écrire, tu dois être en "Mode création" l'icône en forme d'équerre qui se trouve sur la barre d'outils Contrôle.
@+

NB - Tu peux de la même manière visualiser le code qui se trouve derrièrele bouton "Exécuter"

Dans Excel -> Menu Affichage -> Barres d'outils -> Boîte à outils contrôles
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T