Variable avec sous-dossiers

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 =)
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

grandgoret

XLDnaute Nouveau
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...
 

Pierrot93

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 083
Membres
103 458
dernier inscrit
Vulgaris workshop