Lister dossier

Résolu
delf_28 Messages postés 11 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 9 mai 2007 - 4 mai 2007 à 17:17
delf_28 Messages postés 11 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 9 mai 2007 - 9 mai 2007 à 16:42
bonjour,

Je travaille sous excel, et je chercher à lister tous les dossiers et non les fichier car je doit parcourir certain dossier et pas d'autre.
J'ai essayer avec la fonction DIR mais cela ne fonctionne pas.

Es que quelqu'un aurait une idée?

Merci

Delf!

17 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
4 mai 2007 à 23:17
Bon (j'ai sommeil)
Tu as dit les dossiers, hein ?

Insère donc un contrôle DirlistBox nommé Dir1 et un bouton de commande nommé Command1 et ce code
Lance, clique sur command1
Clique ensuite sur un dossier
Vois...
Et Prends là-dedans (fais le ménage) ce qui t'intéresse ...

Private Sub Command1_Click()
  Dir1.Path = "d:\monoutil"   'ici ton chemin à toi, bien sur ...
  For i = 1 To Dir1.ListCount
    MsgBox Dir1.List(i)
  Next
End Sub

Private Sub Dir1_Click()
  MsgBox Dir1.List(Dir1.ListIndex)
End Sub

Bonne nuit.
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
4 mai 2007 à 18:22
Salut,

Le moteur de recherche du site(recherche dans forum) est ton ami...

A+
Exploreur

 
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
4 mai 2007 à 22:57
As-tu essayé DIR avec l'attribut vbDirectory ?

MPi
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
4 mai 2007 à 23:01
Bonsoir,


1) Tu as essayé avec la fonction DIR, mais comment ? (le code)


2) et le contrôle Dirlistbox, tu l'as essayé également ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
4 mai 2007 à 23:02
Salut MPI (croisés )

parle-lui des . et des .. aussi, alors...
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
4 mai 2007 à 23:11
Bonsoir à tous,

Regarde aussi ce code de Mortalino....

A+
Exploreur

 
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
4 mai 2007 à 23:16
 Bonjsoir,

L'exemple ci-dessous existe surement en vb6.

Option Explicit
Dim objFso, objRootFolder
Dim strRootPath, strSubFolder, strResult
strRootPath = "D:\Mes_scripts_VBFrance"

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objRootFolder = objFso.GetFolder(strRootPath)

Call SearchFolders(objRootFolder)
Msgbox strResult,,"Enumératon Sous-Répertoire(s) de " & strRootPath

Set objRootFolder = Nothing
Set objFso = Nothing

Sub SearchFolders(ArgFolder)
For Each strSubFolder In ArgFolder.SubFolders
On Error Resume Next  ' permission
Call SelectFolder(strSubfolder)
Call SearchFolders(strSubfolder)
Next
End Sub

Sub SelectFolder(ArgFolder)
strResult = strResult &vbCrLf& ArgFolder
End Sub

jean-marc
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
5 mai 2007 à 06:21
Salut Exploreur  ;)

Merci pour mon code   Hélas, WMI est gourmand en ressource. Pour ce qu'il souhaite, je lui conseille mon Snippet

Sub Cherche_Fichiers_Dans_Dossier()
    Dim strMessage  As String
    Dim i           As Long
        Set fs = Application.FileSearch

With fs
    .LookIn = "C:"  ' *** mettre ici le dossier voulu !
    .SearchSubFolders = True
    .Filename = "*.exe"  ' *** extension à
modifier
    If .Execute(SortBy:=msoSortByFileName, _
            SortOrder:=msoSortOrderAscending) > 0 Then
        MsgBox "Il y a " & .FoundFiles.Count & _
            " fichier(s) trouvé(s)."
        For i = 1 To .FoundFiles.Count
            Cells(i, 1).Value = .FoundFiles(i)
        '
*** attention à la localisation. Modifie au besoin
        Next i
    Else
        MsgBox "Il n'y a aucun fichier."
    End If
End With

End Sub
~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

Bonne journée à tous

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
5 mai 2007 à 06:23
Arf, bah je suis pas réveillé... Pour les dossiers, pas avec mon code, c'est pour les fichiers :(
Pour Jacques, pas de DirListBox en VBA

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 mai 2007 à 07:28
Bonjour Mortalino,

Pas de dirlistbox en VBA ?
Bon...
On utilise alors la finction DIR

Un bouton de commande Command1 et une listbox List1
on lance, on clique sur commande1, on choisit un dossier

Private repprinc As String


Private Sub Command1_Click()
  repprinc = "d:\monoutil"  ' ici le dossier principal à scanner
  reptrouv = Dir(repprinc, vbDirectory)
  List1.Clear
  Do While reptrouv <> ""
    If reptrouv <> "." And reptrouv <> ".." Then
      If (GetAttr(repprinc & reptrouv) And vbDirectory) = vbDirectory Then
         List1.AddItem reptrouv
      End If
    End If
    reptrouv = Dir
Loop
End Sub


Private Sub List1_Click()
 MsgBox repprinc & List1.List(List1.ListIndex)
End Sub
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 mai 2007 à 08:43
Re;

Je vois par ailleurs que tbbuim1 a fait ce qu'il fallait pour palier cette carence de VBA.
On trouvera ici sa source, accompagnée des OCX prêts à l'emploi dans VBA, dont le DirlistBox.OCX

http://www.vbfrance.com/codes/OCX-DRIVELISTBOX-DIRLISTBOX-FILELISTBOX-POUR-ACCESS_23674.aspx
Autant en profiter, alors.
0
delf_28 Messages postés 11 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 9 mai 2007
9 mai 2007 à 09:53
bonjour,

Merci a tous pour vos réponses mais jej suis toujours bloquée.

jmfmarques j'ai essayée ta méthode mais j'ai une info qui me dit : Membre de méthode ou de données introuvable en ce qui concerne .Path dans la 1ere ligne du code:

Private Sub CommandButton1_Click()
Dir1.Path = "C:\Documents and Settings\Mes documents"
For i = 1 To Dir1.ListCount
MsgBox Dir1.List(i)
Next
End Sub

merci

Delf!
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 mai 2007 à 10:21
Est-ce que tu as bien enregistré les contrôles OCX avec regsvr32.exe ?

MPi
0
delf_28 Messages postés 11 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 9 mai 2007
9 mai 2007 à 10:24
euh... non j'ai jamais entendu parlé de ça!
Je vais voir ça

Merci

Delf!
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 mai 2007 à 10:53
Pour que ce soit plus simple à écrire, copie les fichiers OCX (ainsi que les DEP, DLL, et autres bizzareries fournies) dans le répertoire System32 de Windows.

Ensuite, bouton Démarrer / Exécuter
Dans la fenêtre qui s'ouvre, tape
regsvr32 "NomDuOcx.ocx"

Tu devrais recevoir un message te disant que l'enregistrement a réussi.

Ensuite, je te recommande de redémarrer ton ordi.

MPi
0
delf_28 Messages postés 11 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 9 mai 2007
9 mai 2007 à 14:37
Je les trouve ou les fichiers OCX, DEP, DLL... à placer dans le répertoire System32 ?
J'y connais pas grand chose dans les fichiers de ce type là.

Merci

Delf!
0
delf_28 Messages postés 11 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 9 mai 2007
9 mai 2007 à 16:42
re,

ça y est j'ai trouvée un code permettant de lister les dossiers:

Sub TousLesDossiers(LeDossier$, Idx As Long)
Dim fso As Object, Dossier As Object
Dim sousRep As Object, Flder As Object

Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.GetFolder(LeDossier)

'dossier courant
For Each Flder In Dossier.subfolders
MsgBox Flder.Path
Next

Set fso = Nothing
End Sub


Sub test()
TousLesDossiers "C:\Documents and Settings", 0
End Sub

voila pour ceux à qui ça interesserait!

Merci pour votre aide.

Delf!
0
Rejoignez-nous