J'ai un tas de fichiers (classeurs) excel dans un meme repertoire.
Je désire écrire des donnees précises de ces classeurs (champs spécifiques) dans un fichier excel de synthese (nouveau classeur).
Exemple :
la formule ci-dessus
='C:donnees[classeur1.xls]Feuil1'!$A$1
permet de lire le champ A1 de la feuille 'Feuil1' du 'classeur1' et de l'ecrire dans la cellule ou se trouve la formule de mon nouveau classeur.
Ma question est :
J'ai 300 fichiers (300 lignes !) identiques à traiter mais avec naturellement des noms de fichiers differents (classeur1, classeur2 ...) mais des noms de 'Feuil' identiques.
Les noms de mes 300 fichiers sont déja dans une colonne (utilisation de : RechercheClasseursSurDisque(), macro excel)
Comment puis je faire pour que le champs (en gras) de l'expression :
='C:donnees[classeur1.xls]Feuil1'!$A$1
appelle automatiquement la chaine de caracteres (nom du classeurX) qui se trouve dans une autre cellule ?
Graçe à ce post, j'ai pu avancer mais je rencontre un nouveau blocage.
J'utilise la Macro de MichelXld ci dessous.
Sub boucleClasseurs()
Dim i As Integer
For i = 1 To 300
Cells(i, 2).Formula = '='C:\\donnees\\[' & Cells(i, 1) & ']Feuil1'!$A$1'
Next i
End Sub
Elle marche à merveille sauf que mes fichiers Excel liés ne sont pas tous dans le même dossier . Ils sont classés dans des sous répertoires par Mois. Est-il possible d'adapter la partie 'Formula=... afin que la macro aille chercher tous les fichiers Excels figurant dans les sous répertoires de C:\\Données\\ ?
Merci d'avance pour la précision.
Bonne soirée à tous
Guillaume
J'utilise la macro de MichelXld ci dessous afin de pourvoir récuperer des données dans une liste de fichiers excel. Mais je rencontre un os. Comment faire quand les fichiers sont dans plusieurs sous répertoires différents de c:'/données'/
En ce qui me concerne, mes fichers sont classées dans des sous dossiers mois par mois. Est-il possible que la macro aille automatiquement chercher les classeurs dans tous les sous répertoires de c:données sans avoir à les préciser à chaque fois.
Merci
MichelXld écrit:
bonsoir Arnaud
une proposition de solution par macro :
si par exemple le nom des classeurs est dans la colonne A , cet exemple créée la formule dans la colonne B
Code:
Sub boucleClasseurs()
Dim i As Integer
For i = 1 To 300
Cells(i, 2).Formula = '='C:\\donnees\\[' & Cells(i, 1) & ']Feuil1'!$A$1'
Next i
End Sub