Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Consolider plusieurs feuilles (classeurs) identiques par VBA

  • Initiateur de la discussion Initiateur de la discussion fattah_5791
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fattah_5791

XLDnaute Occasionnel
Bonsoir tout le monde,

merci de m'aider à surmonter mon petit probleme.

j'ai une dizaine de classeurs (chq classeur contient une seule feuille) identiques que je veux consolider par VBA. les cellules de la plage A1:H250 de toutes les feuilles à consolider contiennent des valeurs numeriques. je veux faire la somme des cellules A1 de ttes les feuilles et la mettre ds la cellule A1 d'une feuille RECAP et de meme pour B1, C1,...., H250.

Merci de votre aide
 
C'etait mon souci lorsque j'ai demandé d'ouvrir les classeurs sources un par un (en realite, j'aurai environs 500 classeurs sources). merci encore Job 75 tu m'as proposé les deux solutions.
belle reprise de la semaine.
 
Bonjour à tous.

@job75
Excellent travail 😀 . Et le code est ultra rapide pour sa phase exécution, remarquable!

Est-il possible toutefois que le code en #14 puisses traiter plusieurs feuilles s'il te plait ? (ie : en considérant que la plage de travail reste avec des bornes identiques comme ici [A2:H251] si nécessaire) ?

Merci par avance pour tes précieux conseils, bonne journée
zebanx
 
j'aurai environs 500 classeurs sources
Alors là on dépassera 8192 caractères avec les solutions des posts #10 et #14, et sans doute aussi avec la solution du post #9.

Il faudra alors traiter les cellules une par une sans passer par des formules de liaison.

@ zebanx salut à toi, a priori faire une boucle pour traiter plusieurs feuille de destination.
 
Voyez ce fichier (3) et la macro pour consolider 500 fichiers ou plus :
VB:
Sub Consolider()
Dim t#, chemin$, fichier$, nlig&, ncol%, resu(), nfich%, tablo, i&, j%, v
t = Timer
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
fichier = Dir(chemin & "*.xls*") '1er fichier du dossier
Application.ScreenUpdating = False
With [A2:H251] 'plage à adapter
    nlig = .Rows.Count: ncol = .Columns.Count
    ReDim resu(1 To nlig, 1 To ncol)
    '---ouverture des fichiers---
    While fichier <> ""
        If fichier <> ThisWorkbook.Name Then
            nfich = nfich + 1
            With Workbooks.Open(chemin & fichier)
                tablo = .Sheets(1).[A1].Resize(nlig, ncol)
                For i = 1 To nlig
                    For j = 1 To ncol
                        v = tablo(i, j)
                        If IsNumeric(v) Then resu(i, j) = resu(i, j) + CDbl(v)
                Next j, i
                .Close False
            End With
        End If
        fichier = Dir 'fichier suivant
    Wend
    '--remplissage du tableau---
    .Value = resu
End With
Application.ScreenUpdating = True
MsgBox nfich & " fichiers consolidés en " & Format(Timer - t, "0.00 \s")
End Sub
La consolidation de 4 fichiers se fait chez moi en 2,3 secondes, un peu moins donc qu'au post #9.
 

Pièces jointes

@ zebanx salut à toi, a priori faire une boucle pour traiter plusieurs feuille de destination.

Re-bonjour Job75

Merci déjà de m'avoir répondu sur un sujet de complément à la demande du fil.😉
J'ai essayé mais ça ne fonctionne pas pour le moment.
Est-il possible de le faire de manière assez simple en repartant du code #14 ?
Ca me parait compliqué en première analyse.
Mais je vais essayer dans la semaine.
Bonne journée et bravo pour tes codes.
@+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
72
Affichages
1 K
Réponses
3
Affichages
673
Réponses
7
Affichages
620
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…