Recherche automatique d'un dossier

[Résolu]
Signaler
Messages postés
6
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
7 mai 2007
-
Messages postés
6
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
7 mai 2007
-
Bonjour à tous,

Je réalise une petite application vba pour autocad, et dans mon code je fait appel à plusieur type de fichier qui sont tous dans un dossier "Plan".
Mais comme je sais pas ou va etre mis ce dossier plus tard (ca changera suivant les postes) je voudrai le chercher sur le dd et récupérer son chemin d'accès.
J'ai vu plusieur truc (récursif.....)sur le site mais je comprend pas tout.
Si ya quelqu'un qui peut m'aider ca me débloquerai,merci d'avance à tout le monde.

6 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Tiens essaies de comprendre le principe de ceci.
Pour le tester je ne te conseille pas de le lancer avec C:\ comme répertoire de base sinon cela risque de tarder un peu.
Option Explicit

'Il faut ajouter Microsoft Scripting Runtime pour utiliser
'ce code

Private Sub Form_Load()

'Tableau de résultat
Dim Results() As String
'redimensionne le tableau
ReDim Results(0)
'appelle la procédure de recherche
Call RechercheRep(New FileSystemObject, Results, "PLAN", "C:\")
Stop
End Sub<hr />
Public Sub RechercheRep(ByRef FSO As FileSystemObject, ByRef Results() As String, ByVal RepCherche As String, ByVal StrCheminBase As String)
'Variable Temp de type folder
Dim Fol As Folder
   'Pour Chaque repertoire dans le repertoire de base
   For Each Fol In FSO.GetFolder(StrCheminBase).SubFolders
       'Si le nom est bien le nom recherche
       If UCase(Fol.Name) = UCase(RepCherche) Then
           'on rempli le tableau de résultats
           Results(UBound(Results)) = Fol.Path
           'on prépare un espace de plus (dons le dernier sera vide
           ReDim Preserve Results(UBound(Results) + 1)
       Else
           'si le est différent on RAPPELLE la même procédure
           'mais avec des parametre différent pour effectuer la recherche
           'dans un sous répertoire
           Call RechercheRep(FSO, Results, RepCherche, Fol.Path)
       End If
   Next
   'desctruction du Folder
   Set Fol = Nothing
End Sub<hr />
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Nul besoin que ton programme recherche le répertoire à chaque session.
Écris le chemin du répertoire dans la base de registre en utilisant SaveSetting et tu vas le lire avec GetSetting.

À la première utilisation, comme le chemin n'est pas écrit dans la base de registre, tu ouvres un explorateur (Common Dialog ou fonction Application.GetOpenFilename ou autre). L'utilisateur devra donc définir le chemin une première fois. Tu inscris ce chemin dans la base de registre et les fois suivantes tu n'auras plus qu'à lire ce chemin.

MPi
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Tu n'as pas le choix tu dois essayer de comprendre la récursivité sinon les codes que l'on te proposera te seront (DANS LA PLUPART DES CAS) inutile

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
6
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
7 mai 2007
1
Merci de ta réponse hyper rapide jrivet mais la c bientot le week end et j'en ai marre.
je v attendre lundi et d'avoir la tete bien vide pour me pencher sur ton code puisque il va falloir faire un gros travail de concentration.

Encore merci
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonsoir,

Salut Julien,
Hyper bien cette "nouvelle" présentation ...
Ton script est évidemment la réponse à valider .
Petite question:
Pour ou contre la convention de notation hongroise ???
Bien la réponse de 17h03 ....

A+.
jean-marc
Messages postés
6
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
7 mai 2007
1
Salut,
C 'est bon j'ai pu m'intéresser à ta réponse jrivet et ca marche sans problème, un peut long mais ca va.


Par contre on est obligé de donné au moins "C:/" pour qu'il cherche étant donné que je sais pas du tout où les utilisateurs vont mettre le dossier j'espère que ca passera.


Sinon je vais essayer de le combiner avec ce qu'à dit MPi car j'ai besoin de le chercher qu'une fois.


Encore merci à vous