Executer une macro sur un ensemble de fichiers au lieu d'un
Bonjour,
J'ai deja fait du VBA mais bon il y a 10 ans au moins et je suis assez rouillé...
Mon projet consiste à recuperer des infos qui sont dans des fichiers distincts dans des repertoires distincts pour les compiler dans une base unique
J'ai écris une macro qui fonctionne tres bien sur un fichier en local, en gros ca va chercher des données en table et ca les mets en ligne.
Ce que j'ai besoin maintenant est que cette macro soit executé sur l'ensemble des fichiers qui contiennent "gamme" dans leur nom qui sont dans des repertoires différents (1 seul niveau) afin de remplir ma feuille Output. J'aurais besoin que la macro ouvre les 4 fichiers et execute la macro ci dessous pour une ligne supplementaire sur Output (k=k+1)....
Si qq'un a un peu de temps à perdre ca m'arrangerait bien.
Cdt
JM
Sub Extraire()
'
' Recuperation gamme Macro
'
k = 1
' Pour chaque nouveau fichier on ajoutera k = k + 1 pour ajouter une ligne dans outpout
' Ce que j'ai besoin est d'aller chercher Gamme dans l'ensmble des fichiers gamme dans l'ensemble des repertoires au lieu de ThisWorkbook.sheets("gamme")
ThisWorkbook.Sheets("Output").Cells(k, 1).Value = ThisWorkbook.Sheets("Gamme").Cells(5, 1).Value
ThisWorkbook.Sheets("Output").Cells(k, 2).Value = ThisWorkbook.Sheets("Gamme").Cells(5, 4).Value
' Récupération des cotes de la gamme de controle
i = 1
j = 4
Do While (ThisWorkbook.Sheets("Gamme").Cells(i + 8, 2) <> "") Or (ThisWorkbook.Sheets("Gamme").Cells(i + 8, 4) <> "") Or (ThisWorkbook.Sheets("Gamme").Cells(i + 8, 5) <> "") Or (ThisWorkbook.Sheets("Gamme").Cells(i + 8, 6) <> "") Or (ThisWorkbook.Sheets("Gamme").Cells(i + 8, 7) <> "") 'tant qu'il y a des cotes
ThisWorkbook.Sheets("Output").Cells(k, j).Value = ThisWorkbook.Sheets("Gamme").Cells(i + 8, 2).Value
ThisWorkbook.Sheets("Output").Cells(k, j + 1).Value = ThisWorkbook.Sheets("Gamme").Cells(i + 8, 4).Value
ThisWorkbook.Sheets("Output").Cells(k, j + 2).Value = ThisWorkbook.Sheets("Gamme").Cells(i + 8, 5).Value
ThisWorkbook.Sheets("Output").Cells(k, j + 3).Value = ThisWorkbook.Sheets("Gamme").Cells(i + 8, 6).Value
ThisWorkbook.Sheets("Output").Cells(k, j + 4).Value = ThisWorkbook.Sheets("Gamme").Cells(i + 8, 7).Value
i = i + 1
j = j + 5
Loop
' Récupération du nom de cotes de controles
ThisWorkbook.Sheets("Output").Cells(k, 3).Value = i - 1
k = k + 1
End SubMon arborescence de test, je voudrais que ma macro ouvre les 4 fichiers (et pas le reste) et applique le meme code sur la feuille gamme de chaque fichier...
Bonjour
Depuis la version 2010 on fait cela en quelques clics avec PowerQuery, intégré à Excel sans VBA
Poste 2 fichiers exemples
RE
SI j'ai bien compris l'Output est dans un fichier de synthèse.
Or là je le vois dans la fichier Gamme...
Par ailleurs dans ton arborescence il y a 5 fichiers avec gamme dans le nom
J'ai supposé que le niveau TEST est à ignorer
Modifier le chemin et Données, Actualiser Tout