XL 2010 Consolider plusieurs feuilles (classeurs) identiques par VBA

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
 

zebanx

XLDnaute Accro
Bonjour à tous.

@job75
Excellent travail :D . 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
 

job75

XLDnaute Barbatruc
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

  • Consolidation VBA(3).xlsm
    23.1 KB · Affichages: 14
  • tatata.xlsx
    17 KB · Affichages: 10
  • tititi.xlsx
    17 KB · Affichages: 6
  • tototo.xlsx
    17 KB · Affichages: 6
  • tututu.xlsx
    17 KB · Affichages: 7

zebanx

XLDnaute Accro
@ 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:

Discussions similaires

Réponses
7
Affichages
292