Menu

Consolidate Sources:=

Messages postés
172
Date d'inscription
dimanche 12 mars 2006
Dernière intervention
13 décembre 2018
- - Dernière réponse : hmcirta
Messages postés
172
Date d'inscription
dimanche 12 mars 2006
Dernière intervention
13 décembre 2018
- 13 déc. 2018 à 00:43
Bonjour,

Faisant suite à mon sujet resté sans réponse https://www.commentcamarche.net/forum/affich-34908413-consolider-plusieurs-feuilles-simultanement-partie-2?full%2C= , je relance la discussion mais pour modifier un code que j'ai trouvé sur le net pour l'adapter à mon cas.

Voilà ce que j'ai trouvé :

Sub Consolidate_Totals()
Dim ws As Worksheet
Dim sArray As Variant, i As Integer
ReDim sArray(1 To 1)

'---Make Array with Named Ranges to be Consolidated
For Each ws In ActiveWorkbook.Worksheets
If ws.Visible And ws.Name <> "Sheet1" Then
i = i + 1
ReDim Preserve sArray(1 To i)
sArray(i) = ws.UsedRange.Address(ReferenceStyle:=XlReferenceStyle.xlR1C1, external:=True)
End If
Next ws
If i = 0 Then Exit Sub

'---Consolidate using the Array
Sheets("Sheet1").Range("A1").Consolidate Sources:=(sArray), _
Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:=False
End Sub



Comme vu le voyez ce code consolide toutes les cellules contenant des données ou ayant une mise en forme des feuilles visibles uniquement du classeur actif.

Ce que je veux c'est :
Consolider telle ou telle plage de cellule qui est la même pour toutes les feuilles.
Indiquer à Excel les feuilles que je veux consolider (sachant que ces feuilles se suivent)

Si j'insiste sur ça c'est que j'en ai vraiment besoin car ça me fera gagner énormément de temps et ça rendra la tache beaucoup moins pénible.


Merci d'avance.


Configuration: Windows 7 ultimate
Afficher la suite 

Votre réponse

3 réponses

Messages postés
287
Date d'inscription
samedi 28 juillet 2012
Dernière intervention
13 décembre 2018
0
Merci
Bonjour,

Quelles feuilles souhaites tu consolider (noms des feuilles) et quelle plage?
Dans quelle feuille la consolidation doit-elle être effectué?

Si tu pouvais nous joindre un exemple de ton fichier ce serait beaucoup pour facile de t'aider.

Jc
Commenter la réponse de titeufdu89
Messages postés
172
Date d'inscription
dimanche 12 mars 2006
Dernière intervention
13 décembre 2018
0
Merci
Bonjour,

Voici un exemple très réduit de mon fichier.

https://www.cjoint.com/c/HLdqn47idVe

Les plages que je veux consolider sont coloriées. Elles seront consolidées séparément et au besoin.
Ce fichier est un rapport journalier rédigé par des ingénieurs et peut contenir entre 50 et 200 feuilles qui peuvent être nommées différemment. Mais du moment que le format de ce rapport est fixe les plages ne sont pas modifiables.

La consolidation sera faite dans un classeur à part.

Le nombre de feuilles à consolider varie entre 7 (une semaine min) et 31 (un mois max).

Voila, j’espère que j'ai su vous expliquer ce que je veux faire.

Merci de votre aide.
hmcirta
Messages postés
172
Date d'inscription
dimanche 12 mars 2006
Dernière intervention
13 décembre 2018
-
Une petite correction :
Le nombre de feuilles varie entre 2 et 31 et non pas 7 et 31
Commenter la réponse de hmcirta
Messages postés
172
Date d'inscription
dimanche 12 mars 2006
Dernière intervention
13 décembre 2018
0
Merci
Salut,

j'ai remplacé dans

sArray(i) = ws.UsedRange.Address(ReferenceStyle:=XlReferenceStyle.xlR1C1, external:=True)

UsedRange.Adress par Range("O15:Y47").Address pour consolider la plage en rose par exemple et ça a marché.

il ne reste plus qu'a indiquer a Excel les N feuilles concernées par la consolidation.

Si mon classeur contient les feuilles DMR01, DMR02, DMR03, ... , DMRX comment indiquer a Excel de consolider les plages O15:Y47 en rose par exemple des feuilles DMR12 a DMR20 en suite de consolider les plages O49:Y53 en orange par exemple des feuilles DMR59 a DMR77.

Cordialement
Commenter la réponse de hmcirta