Consolidation de classeur
Résolu/Fermé
Lovamavi
-
10 janv. 2013 à 22:25
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 13 janv. 2013 à 18:48
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 13 janv. 2013 à 18:48
A voir également:
- Consolidation de classeur
- Classeur numérique gratuit - Télécharger - Bureautique
- Fusionner classeur excel - Guide
- Appliquer mise en forme conditionnelle sur tout le classeur ✓ - Forum Bureautique
- Étiquette classeur a imprimer gratuit excel - Forum Excel
- Modèle Etiquettes?? ✓ - Forum Bureautique
8 réponses
Merci ERIIC pour ta réponse.
J'ai testé le code, mais cela bloque à la ligne "shDest.Range(plageRecup).ClearContents" !
Cela peut-il venir du fait que les feuilles sont protégées ?
J'ai testé le code, mais cela bloque à la ligne "shDest.Range(plageRecup).ClearContents" !
Cela peut-il venir du fait que les feuilles sont protégées ?
Raymond PENTIER
Messages postés
58800
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
7 janvier 2025
17 264
11 janv. 2013 à 04:19
11 janv. 2013 à 04:19
Je ne vois vraiment pas l'utilité de passer par VBA pour un calcul aussi simple !
Raymond PENTIER
Messages postés
58800
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
7 janvier 2025
17 264
12 janv. 2013 à 04:38
12 janv. 2013 à 04:38
Alors ça, c'est une information qui nous manquait ...
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
12 janv. 2013 à 06:56
12 janv. 2013 à 06:56
Bonjour,
une proposition :
https://www.cjoint.com/c/CAmg00n6DJn
à tester... tous les fichiers y compris Synthèse.xls doivent être dans le même répertoire
La plage à additionner est fixe (B2:C3 ici, à adapter).
Peut-être faudrait-il la rendre dynamique selon la feuille mais je manque d'éléments.
eric
une proposition :
Sub Synthese() ' adapter la plage à sommer sur tous les fichiers Const plageRecup As String = "B2:C3" ' Dim chemin As String, Fichier As String Dim wb As Workbook, shDest As Worksheet, shSource As Worksheet Dim c As Range Set wb = ThisWorkbook chemin = wb.Path + "\" Application.ScreenUpdating = False ' nettoyage For Each shDest In wb.Worksheets ' pour chaque feuille shDest.Range(plageRecup).ClearContents Next shDest ' ' pour chaque fichier Fichier = Dir(chemin & "*.xl*") ' 1er fichier Do While (Len(Fichier) > 0) If Fichier <> ThisWorkbook.Name Then Workbooks.Open chemin & Fichier ' traitement For Each shDest In wb.Worksheets ' pour chaque feuille Set shSource = Worksheets(shDest.Name) For Each c In shDest.Range(plageRecup) c = c + shSource.Range(c.Address) Next c Next shDest ActiveWorkbook.Close End If Fichier = Dir() ' fichier suivant Loop Application.ScreenUpdating = True End Sub
https://www.cjoint.com/c/CAmg00n6DJn
à tester... tous les fichiers y compris Synthèse.xls doivent être dans le même répertoire
La plage à additionner est fixe (B2:C3 ici, à adapter).
Peut-être faudrait-il la rendre dynamique selon la feuille mais je manque d'éléments.
eric
Bonjour Eric,
Je viens de ré-adapter le code avec tes conseils et cela fonctionne à merveille.
Je te remercie pour ton aide qui me permet de progresser un peu plus ... Toutefois je ne doute pas un instant avoir encore de tes compétences lors de mes futurs développement d'outil
Merci
Laurent
Je viens de ré-adapter le code avec tes conseils et cela fonctionne à merveille.
Je te remercie pour ton aide qui me permet de progresser un peu plus ... Toutefois je ne doute pas un instant avoir encore de tes compétences lors de mes futurs développement d'outil
Merci
Laurent
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je viens de faire tourner la macro qui fonctionne parfaitement, je voudrais abuser encore un peu de tes conseils car compte tenu que ladite macro risque de durer tres longtemps (15 fichiers ayant 12 oglets !), je pense que je vais mettre un bouton sur chaque feuille du fichier synthèse =afin que la mise à jour soit faite uniquement mois par mois (ex : je clique sur le bouton janvier et la macro va chercher les données des feuilles "janvier" des différents fichiers.
Peux-tu me dire ce que je dois changer dans ton code pour réussir cela ?
NB : De plus peux-tu m'indiquer comment on met un fil en "RESOLU" sur ce forum ?
Merci d'avance
Peux-tu me dire ce que je dois changer dans ton code pour réussir cela ?
NB : De plus peux-tu m'indiquer comment on met un fil en "RESOLU" sur ce forum ?
Merci d'avance
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
13 janv. 2013 à 16:56
13 janv. 2013 à 16:56
Bonjour,
J'ai modifié le code. Un double-clic sur A1 lance la mise à jour de la feuille active.
Il y a une procédure en plus dans ThisWorkbook.
https://www.cjoint.com/c/CAnq2oOV4px
Pour mettre en résolu c'est en haut vers ton titre.
eric
J'ai modifié le code. Un double-clic sur A1 lance la mise à jour de la feuille active.
Il y a une procédure en plus dans ThisWorkbook.
https://www.cjoint.com/c/CAnq2oOV4px
Pour mettre en résolu c'est en haut vers ton titre.
eric
Je viens de lancer la macro et ca bloque sur SheetBeforeDoubleClick notamment sur Target. Le message me dit que" la fonction n'est pas définie".
Avec un bouton cela fonctionne donc pas de problème :) mais au titre de ma montée en compétence, pourquoi cela bloque t-il ?
Avec un bouton cela fonctionne donc pas de problème :) mais au titre de ma montée en compétence, pourquoi cela bloque t-il ?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
Modifié par eriiic le 13/01/2013 à 18:13
Modifié par eriiic le 13/01/2013 à 18:13
Bizarre...
J'ai fait sur excel 2003 et je viens de tester sur 2010, pas de pb.
Peut-être as-tu une autre macro qui bloque les évènements et ne les restaure pas ?
Sinon essaie avec :
Then Call Synthese
ou au pire avec :
Then Call Module1.Synthese mais ça serait bien la 1ère fois que j'utiliserais cette syntaxe.
eric
PS: tu n'as pas renommé le Sub Synthese() autrement sur ton fichier ?
J'ai fait sur excel 2003 et je viens de tester sur 2010, pas de pb.
Peut-être as-tu une autre macro qui bloque les évènements et ne les restaure pas ?
Sinon essaie avec :
Then Call Synthese
ou au pire avec :
Then Call Module1.Synthese mais ça serait bien la 1ère fois que j'utiliserais cette syntaxe.
eric
PS: tu n'as pas renommé le Sub Synthese() autrement sur ton fichier ?
Cela peut-il une nouvelle fois venir de la protection de la feuille ?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
13 janv. 2013 à 18:17
13 janv. 2013 à 18:17
normalement non, ça n'empêche pas l'appel.
Mais tu n'as pas renommé le Sub Synthese() autrement sur ton fichier et il est bien dans un module standard ?
Mais tu n'as pas renommé le Sub Synthese() autrement sur ton fichier et il est bien dans un module standard ?
Bien joué Eric,
J'avais effectivement renommer Synthèse, tout fonctionne parfaitement ...
Merci beaucoup pour le temps que tu m'as consacré
Au plaisir de recroiser ta route
J'avais effectivement renommer Synthèse, tout fonctionne parfaitement ...
Merci beaucoup pour le temps que tu m'as consacré
Au plaisir de recroiser ta route
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
13 janv. 2013 à 18:48
13 janv. 2013 à 18:48
Bonne continuation :-)
eric
eric
Modifié par eriiic le 12/01/2013 à 20:04
Je supprime tout le contenu de la plage indiquée avant de faire les sommes.
Ajouter ces lignes avant et après traitement de chaque feuille :
shDest.Unprotect Password:="pw"
shDest.Protect Password:="pw"
eric