lamasone
Messages postés6Date d'inscriptionvendredi 1 décembre 2006StatutMembreDernière intervention 7 mai 2007
-
4 mai 2007 à 16:14
lamasone
Messages postés6Date d'inscriptionvendredi 1 décembre 2006StatutMembreDernière intervention 7 mai 2007
-
7 mai 2007 à 15:35
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.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 4 mai 2007 à 16:41
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]
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 4 mai 2007 à 22:56
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.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 4 mai 2007 à 16:35
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
lamasone
Messages postés6Date d'inscriptionvendredi 1 décembre 2006StatutMembreDernière intervention 7 mai 20072 4 mai 2007 à 17:03
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 4 mai 2007 à 23:07
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 ....
lamasone
Messages postés6Date d'inscriptionvendredi 1 décembre 2006StatutMembreDernière intervention 7 mai 20072 7 mai 2007 à 15:35
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.