Bonjour,
J'ai créer une macro qui parcours le répertoire racine et récupère des données dans des fichiers .xlsm fermés. Celle-ci fonctionne sans problème.
Je souhaite désormais adapter cette macro en prenant en compte que :
- de chaque sous répertoire balayés je veux récupérer les données du fichier le plus récemment créé
- les fichiers sont dans plusieurs sous répertoires du répertoires racine et avec 2 sous niveaux
En création de macro, n'étant pas un virtuose de VBA, je procède en général par étape. j'ai fait la première partie, je poursuis donc.
Là je bloque sur du simple je pense ...
j'ai des répertoires comme suit:
racine\xxx\02-chiffrage\*.xlsm
racine\yyy\chiffrage\*.xlsm
racine\zzz\05-Chiffrages\*.xlsm
xxx, yyy .... sont dés répertoires avec des noms différents
le sous répertoire qui suit contient toujours "chiffrage" mais entouré de divers autres caractères
Il y a plusieurs fichiers dans le répertoire final, je veux récupérer le xlsm le plus récent.
Quand je remplace xxx par le caractère étoile (*), j'ai essayé ceci
, ça ne marche pas.
Le code ma macro existante est ci-dessous
Pour votre aide SVP, dans un premier temps sur comment utiliser les **** ou autres pour indiquer que les répertoires peuvent présenter différents noms.
Merci par avance
J'ai créer une macro qui parcours le répertoire racine et récupère des données dans des fichiers .xlsm fermés. Celle-ci fonctionne sans problème.
Je souhaite désormais adapter cette macro en prenant en compte que :
- de chaque sous répertoire balayés je veux récupérer les données du fichier le plus récemment créé
- les fichiers sont dans plusieurs sous répertoires du répertoires racine et avec 2 sous niveaux
En création de macro, n'étant pas un virtuose de VBA, je procède en général par étape. j'ai fait la première partie, je poursuis donc.
Là je bloque sur du simple je pense ...
j'ai des répertoires comme suit:
racine\xxx\02-chiffrage\*.xlsm
racine\yyy\chiffrage\*.xlsm
racine\zzz\05-Chiffrages\*.xlsm
xxx, yyy .... sont dés répertoires avec des noms différents
le sous répertoire qui suit contient toujours "chiffrage" mais entouré de divers autres caractères
Il y a plusieurs fichiers dans le répertoire final, je veux récupérer le xlsm le plus récent.
Quand je remplace xxx par le caractère étoile (*), j'ai essayé ceci
Code:
p = ThisWorkbook.Path & "\*\*chiffrage*\"
Le code ma macro existante est ci-dessous
VB:
Dim col As Integer, p As String, nomfich As String
Application.ScreenUpdating = False 'fige l'écran (pour accélérer)
Range("b1:aa50").ClearContents 'efface la plage de restitution
Range("b5:aa5").ClearComments 'efface les commentaires de la ligne 5
col = 2 'restitution à partir de la ligne 2 (si titres en ligne 1)
p = ThisWorkbook.Path & "\"
nomfich = Dir(p & "*.xlsm") '1er fichier du dossier
While nomfich <> ""
If nomfich <> ThisWorkbook.Name Then
Cells(5, col).Value = "='" & p & "[" & nomfich & "]Main page'!d2"
Cells(5, col).AddComment
Cells(5, col).Comment.Text Text:=nomfich
Cells(6, col).Value = "='" & p & "[" & nomfich & "]Main page'!C2"
col = col + 1
End If
nomfich = Dir 'fichier suivant du dossier
Wend
'remplacer les formules de la feuille par des valeurs
With ActiveSheet.UsedRange
.Value = .Value
End With
Application.ScreenUpdating = True
End Sub
Pour votre aide SVP, dans un premier temps sur comment utiliser les **** ou autres pour indiquer que les répertoires peuvent présenter différents noms.
Merci par avance