VBA - Consolidation de fichiers
isa51
Messages postés
2
Statut
Membre
-
Le Pingou Messages postés 12656 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12656 Date d'inscription Statut Contributeur Dernière intervention -
Je souhaite consolider automatiquement (sans avoir à indiquer manuellement chaque plage à consolider dans la fonction "Consolidation") la même feuille de chaque classeur : la feuille A du classeur 1, la feuille A du classeur 2, etc... Les plages à consolider sont les mêmes sur chaque feuille, je souhaite faire la somme de toutes les plages.
J'ai créé la macro ci-dessous mais elle ne fonctionne pas, help !
Sub Consolidation()
Dim fichier As String
chemin = ActiveWorkbook.Path
fichier = Dir(chemin & "\" & "*.xls")
Application.ScreenUpdating = True
Do While fichier <> ""
Range("B2:B11").Consolidate Sources:="[" & fichier & "]" & "!B2:B11", Function:=xlSum
fichier = Dir()
Loop
Application.ScreenUpdating = True
End Sub
J'ai créé la macro ci-dessous mais elle ne fonctionne pas, help !
Sub Consolidation()
Dim fichier As String
chemin = ActiveWorkbook.Path
fichier = Dir(chemin & "\" & "*.xls")
Application.ScreenUpdating = True
Do While fichier <> ""
Range("B2:B11").Consolidate Sources:="[" & fichier & "]" & "!B2:B11", Function:=xlSum
fichier = Dir()
Loop
Application.ScreenUpdating = True
End Sub
A voir également:
- VBA - Consolidation de fichiers
- Renommer des fichiers en masse - Guide
- Explorateur de fichiers - Guide
- Fichiers epub - Guide
- Gestionnaire de fichiers - Télécharger - Gestion de fichiers
- Wetransfer gratuit fichiers lourd - Guide
4 réponses
Bonjour,
Combien de classeurs .... ?
Qu'elle est le nom du classeur maître ... ?
Il y a bien l'outil de données [Consolider] mais je ne sais pas où vous avez trouvé la fonction [Consolidation] ?
Combien de classeurs .... ?
Qu'elle est le nom du classeur maître ... ?
Il y a bien l'outil de données [Consolider] mais je ne sais pas où vous avez trouvé la fonction [Consolidation] ?
Bonsoir,
Non mélanie, la fonction dir() avec le Do... Loop permet de balayer les fichiers d'un répertoire.
@isa51
Ceci dit il manque apparemment l'indication du chemin dans le Consolidate, et l'indication de la feuille. De plus pas sûr que la fonction travaille sur les classeurs fermés (?)
Dans un premier temps essaie en ouvrant les classeurs. Quand cette partie fonctionnera il sera temps de tenter avec classeurs fermés.
Si pour ActiveWorkbook tu penses ce classeur avec la macro utilises Thisworkbook. Et penses à tester le nom du fichier s'ils sont tous dans le même répertoire, de façon à ne pas consolider celui de la macro.
eric
edit:
ici une syntaxe complète qui a l'air de tourner.
Regarde comment est désignée la source dans le Validate, à-priori il te manque bien chemin et feuille.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Non mélanie, la fonction dir() avec le Do... Loop permet de balayer les fichiers d'un répertoire.
@isa51
Ceci dit il manque apparemment l'indication du chemin dans le Consolidate, et l'indication de la feuille. De plus pas sûr que la fonction travaille sur les classeurs fermés (?)
Dans un premier temps essaie en ouvrant les classeurs. Quand cette partie fonctionnera il sera temps de tenter avec classeurs fermés.
Si pour ActiveWorkbook tu penses ce classeur avec la macro utilises Thisworkbook. Et penses à tester le nom du fichier s'ils sont tous dans le même répertoire, de façon à ne pas consolider celui de la macro.
eric
edit:
ici une syntaxe complète qui a l'air de tourner.
Regarde comment est désignée la source dans le Validate, à-priori il te manque bien chemin et feuille.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Bonjour à tous,
En attendant une réponse de [isa51]....!
En fait, pas besoin de macro si vous utilisez la possibilité de l'outil de données consolider comme suit :
Pour que la consolidation soit mise à jour automatiquement lorsque les données sources d'un autre classeur changent, activez la case à cocher Lier aux données sources.
En attendant une réponse de [isa51]....!
En fait, pas besoin de macro si vous utilisez la possibilité de l'outil de données consolider comme suit :
Pour que la consolidation soit mise à jour automatiquement lorsque les données sources d'un autre classeur changent, activez la case à cocher Lier aux données sources.
Coucou,
ta macro ne peux pas fonctionner parce que tu n'as pas défini le nom des fichiers.
je vais prendre un exemple, c'est plus simple.
Dis ons que tu es sur le fichier qui s'appelle classeur1.xls et qui se trouve dans C:\documents.
Tu lances ta macro, voici ce qu'elle fait
chemin = ActiveWorkbook.Path ==>chemin= C:\documents
fichier = Dir(chemin & "\" & "*.xls") ==> fichier = C:\documents\.xls
tu es d'accord avec moi qu'il manque quelque chose??
il faut que définisses une variable avec le nom de fichier comme ceci :
chemin = ActiveWorkbook.Path
nomfichier = "Calasseur2.xls")
fichier = Dir(chemin & "\" & nomfichier)
Comprends tu?
ta macro ne peux pas fonctionner parce que tu n'as pas défini le nom des fichiers.
je vais prendre un exemple, c'est plus simple.
Dis ons que tu es sur le fichier qui s'appelle classeur1.xls et qui se trouve dans C:\documents.
Tu lances ta macro, voici ce qu'elle fait
chemin = ActiveWorkbook.Path ==>chemin= C:\documents
fichier = Dir(chemin & "\" & "*.xls") ==> fichier = C:\documents\.xls
tu es d'accord avec moi qu'il manque quelque chose??
il faut que définisses une variable avec le nom de fichier comme ceci :
chemin = ActiveWorkbook.Path
nomfichier = "Calasseur2.xls")
fichier = Dir(chemin & "\" & nomfichier)
Comprends tu?