XL 2016 SOMME INDEX entre deux onglets

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 !

emeline51

XLDnaute Nouveau
Bonjour,

Je me permets de venir vers vous pour vous demander de l'aide.
Ci-joint un fichier excel pour alimenter mon problème

L'objectif est d’additionner dans l'onglet Synthèse, les valeurs des onglets compris entre les onglets aaa et zzz (pour me permettre de rajouter des onglets au fil du temps), selon les critères semaines (ligne1) et personnes (colonne a).
J'ai bien la formule pour aller chercher dans un onglet précis (cf. tableau1), mais je n'arrive pas à sommer les onglets.
Quelqu'un aurait la solution ?

Merci d'avance pour votre aide
Emeline
 

Pièces jointes

Solution
Bonjour,
Un essai en PJ, on commence à compter de la feuille aaa jusqu'à zzz, avec :
VB:
Function Calcule(Qui, Semaine)
Dim Somme, Sh, A%, B%, Ligne%, Colonne%, Début%, Fin%
Somme = 0
Début = 0: Fin = 1
For Each Sh In Worksheets
    If Sh.Name <> "Synthese" Then   ' On ignore la feuille Synthese
        If Sh.Name = "aaa" Then Début = 1   ' On commence à compter à partir de la feuille aaa
        A = Application.CountIf(Sheets(Sh.Name).Range("A:A"), Qui)      ' "Qui" existe t il ?
        B = Application.CountIf(Sheets(Sh.Name).Range("1:1"), Semaine)  ' "Semaine" existe t il ?
        If A > 0 And B > 0 And Début = 1 And Fin = 1 Then ' Si "Qui" et "Semaine" existent alors on somme la valeur trouvée
            Ligne =...
Rajoutez Application.Volatile :
VB:
Function Calcule(Qui, Semaine)
Dim Somme, Sh, A%, B%, Ligne%, Colonne%, Début%, Fin%
Application.Volatile
Somme = 0
Début = 0: Fin = 1
La fonction sera réactulaisée à chaque nouveau recalcul de la feuille.
( mais comme peut être lourd suivant les fonctions, par défaut je ne le mets pas de base.)

Ok effectivement ça semble ralentir pas mal le fichier. A voir dans la pratique quotidienne. A tout hasard si j'insère un bouton permettant l'actualisation des données une fois le fichier complété serait un moyen de rendre le fichier moins lourd ?
 
... c'est pour ça qu'on évite ! 😉
Retirez cette ligne Volatile. Dans votre feuille Synthèse, on peut mettre du code . Collez y :
VB:
Sub Worksheet_Activate()
     Calculate
End Sub
Les calculs s'effectueront automatiquement que lorsque vous sélectionnerez la feuille Synthèse. C'est mieux qu'un bouton.
1.jpg
 
... c'est pour ça qu'on évite ! 😉
Retirez cette ligne Volatile. Dans votre feuille Synthèse, on peut mettre du code . Collez y :
VB:
Sub Worksheet_Activate()
     Calculate
End Sub
Les calculs s'effectueront automatiquement que lorsque vous sélectionnerez la feuille Synthèse. C'est mieux qu'un bouton.
Regarde la pièce jointe 1087264

Il y en a tellement a apprendre sur Excel !
Par contre le code ne fonctionne pas, l'actualisation ne se fait pas
 
Oups! Le recalcul ne se fait pas car les deux paramètres dans la formule n'ont pas bougés.
Donc on va tricher.
Modifiez votre Worksheet_Activate :
Code:
Sub Worksheet_Activate()
    Ancien = [B1]
    [B1] = Ancien
    Calculate
End Sub
Comme la cellule B1 à changer, même si elle conserve la même valeur, tout est recalculé.
Voir PJ.
 

Pièces jointes

Oups! Le recalcul ne se fait pas car les deux paramètres dans la formule n'ont pas bougés.
Donc on va tricher.
Modifiez votre Worksheet_Activate :
Code:
Sub Worksheet_Activate()
    Ancien = [B1]
    [B1] = Ancien
    Calculate
End Sub
Comme la cellule B1 à changer, même si elle conserve la même valeur, tout est recalculé.
Voir PJ.


C'est parfait comme ça 👍 merci encore
 
- 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
5
Affichages
382
Retour