Variable avec sous-dossiers

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

grandgoret

XLDnaute Nouveau
Bonjour,

J` ai un petit souci lors de l execution de ma macro, dont voici un extrait :

Sub CopieDonnéesAMPM()
Dim fs As Object
Application.ScreenUpdating = False 'Freeze l'ecran
MonChemin = ActiveWorkbook.Path & "\Arrondissements\"

If fs.fileexists(MonChemin & x & ".xls") Then 'Si le fichier existe ...
Workbooks.Open Filename:=MonChemin & x & ".xls" 'On ouvre le fichier

Cette macro permet d executer un certain nombre de fichiers qui sont tous presents dans des sous-dossiers du dossier arrondissement.
Mon arborescence fonctionne ainsi :
- le classeur utilisé est dans le dossier \Comptage\
- les fichiers excel utilisés, en grand nombre, sont dans des répertoires de type : \comptage\Arrondissement\Arrond1\ , \comptage\Arrondissement\Arrond2\ , etc... jusqu a Arrond8.

Lorsque je met :
ActiveWorkbook.Path & \Arrondissement\Arrond1\
dans la variable MonChemin, pas de souci, la macro fonctionne bien et va bien me chercher tous les fichiers présents dans le dossier Arrond1.
Mais si je met
ActiveWorkbook.Path & \Arrondissement\Arrond1\ & \Arrondissement\Arrond2\
la macro sexecute sans erreur ...mais rien ne se passe, aucune donnée n est importée.

Ainsi ma question : est il possible que la variable mon chemin soit composéée des huit sous-repertoires de type Arrond1, Arrond2 ??? si oui, quelle est la syntaxea employer pour la variable monChemin ??

Merci d avance pour vos réponses =)
 
Re : Variable avec sous-dossiers

Bonsoir,

regarde le code ci-dessous en l'exécutant pas à pas, vois si il peut te servir :

Code:
Sub test()
Dim x(7) As String, monchemin As String, i As Byte
monchemin = ActiveWorkbook.Path
For i = 1 To 8
    x(i - 1) = "\Arrondissement\Arrond" & i
Next i
monchemin = monchemin & x(1)
MsgBox monchemin
End Sub

bonne soirée
@+
 
Re : Variable avec sous-dossiers

merci pour votre réponse,

En fait le souci est que tous les sous repertoires n ont pas forcement un nom standardisé de type Arrond1, Arrond2.. mais le nom des arrondissement eux meme. Ce qui fait que je peux pas trop utiliser le methode avec increment que vous proposez...
 
Re : Variable avec sous-dossiers

re

peut être comme ceci alors :

Code:
Sub ListeFichiersRepert()
Dim fso As Object, x As Integer
Dim f As Object, f1 As Object, f2 As Object
Dim monrepertoire As String
monrepertoire = ActiveWorkbook.Path
Set fso = CreateObject("Scripting.FileSystemObject")
x = 1
For Each f1 In fso.GetFolder(monrepertoire).SubFolders
    Cells(x, 1).Value = f1.Name
    x = x + 1
    For Each f2 In f1.Files
        Cells(x - 1, 3).Value = f2.Name
        x = x + 1
    Next f2
    x = x - 1
Next f1
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour