Lister dossier [Résolu]

delf_28 11 Messages postés jeudi 29 mars 2007Date d'inscription 9 mai 2007 Dernière intervention - 4 mai 2007 à 17:17 - Dernière réponse : delf_28 11 Messages postés jeudi 29 mars 2007Date d'inscription 9 mai 2007 Dernière intervention
- 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!
Afficher la suite 

17 réponses

Répondre au sujet
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 4 mai 2007 à 23:17
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 4 mai 2007 à 18:22
0
Utile
Salut,

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

A+
Exploreur

 
Commenter la réponse de cs_Exploreur
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 4 mai 2007 à 22:57
0
Utile
As-tu essayé DIR avec l'attribut vbDirectory ?

MPi
Commenter la réponse de cs_MPi
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 4 mai 2007 à 23:01
0
Utile
Bonsoir,


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


2) et le contrôle Dirlistbox, tu l'as essayé également ?
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 4 mai 2007 à 23:02
0
Utile
Salut MPI (croisés )

parle-lui des . et des .. aussi, alors...
Commenter la réponse de jmfmarques
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 4 mai 2007 à 23:11
0
Utile
Bonsoir à tous,

Regarde aussi ce code de Mortalino....

A+
Exploreur

 
Commenter la réponse de cs_Exploreur
cs_JMO 1838 Messages postés jeudi 23 mai 2002Date d'inscription 1 avril 2018 Dernière intervention - 4 mai 2007 à 23:16
0
Utile
 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
Commenter la réponse de cs_JMO
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 5 mai 2007 à 06:21
0
Utile
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~
  
Commenter la réponse de mortalino
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 5 mai 2007 à 06:23
0
Utile
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~
  
Commenter la réponse de mortalino
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 5 mai 2007 à 07:28
0
Utile
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
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 5 mai 2007 à 08:43
0
Utile
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.
Commenter la réponse de jmfmarques
delf_28 11 Messages postés jeudi 29 mars 2007Date d'inscription 9 mai 2007 Dernière intervention - 9 mai 2007 à 09:53
0
Utile
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!
Commenter la réponse de delf_28
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 9 mai 2007 à 10:21
0
Utile
Est-ce que tu as bien enregistré les contrôles OCX avec regsvr32.exe ?

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

Merci

Delf!
Commenter la réponse de delf_28
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 9 mai 2007 à 10:53
0
Utile
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
Commenter la réponse de cs_MPi
delf_28 11 Messages postés jeudi 29 mars 2007Date d'inscription 9 mai 2007 Dernière intervention - 9 mai 2007 à 14:37
0
Utile
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!
Commenter la réponse de delf_28
delf_28 11 Messages postés jeudi 29 mars 2007Date d'inscription 9 mai 2007 Dernière intervention - 9 mai 2007 à 16:42
0
Utile
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!
Commenter la réponse de delf_28

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.