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

XL 2016 Recherche d'un texte dans plusieurs feuillet et addition des valeurs correspondant au texte pour réaliser des analyses.

Adri65270

XLDnaute Nouveau
Bonjour,

Tout d'abord merci d'avance pour votre aide.
Je cherche à faire un fichier pour que mes collaborateurs puissent remplir les taches de travail hebdomadaire par feuillet.
Pour ma part dans l'onglet récap, je souhaite que par exemple par famille ou codex obtenir une récupération des données de la colonne temps de chaque feuillet et pouvoir faire la somme de toutes ces lignes par familles ou codex.
J'ai essayé plein de formule mais mon niveau est limité.

Pouvez vous m'aider?

Je vous remercie.

Adrien.
 

Pièces jointes

  • Fiche de travail.xlsx
    650 KB · Affichages: 4
Solution
Bonjour,
Si j'ai bien compris vous voulez faire la somme sur toutes les feuilles qui auraient sur une même ligne les deux critères ?
Donc un Equiv ou RechercheV ne suffiront pas.
Ces fonctions permettrait par ex de faire la somme des deux totaux présent sur Recap, mais de façon indépendante, non pas s'ils étaient liés.
Un ex en PJ, la macro s'exécute automatiquement lorsqu'on change un des deux critères, avec :

VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("AE15:AE19")) Is Nothing Then
         Dim Critère1, Critère2, Resultat, F
         On Error GoTo Fin:
         Application.ScreenUpdating = False
            Critère1 = [AE15]: Critère2 = [AE19]: Resultat = 0
            For Each F In Worksheets...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Adri,
Un essai en PJ avec la macro événementielle :
VB:
Sub Worksheet_Activate()
    Dim L%, F, Famille, Codex
    Application.ScreenUpdating = False
    For L = 10 To 14
        Famille = 0
        For Each F In Worksheets
            With Sheets(F.Name)
                Famille = Famille + Application.SumIfs(.Range("AH10:AH55"), .Range("G10:G55"), Cells(L, "C"))
            End With
        Next F
        Cells(L, "W") = Famille
    Next L
    For L = 20 To 48
        Codex = 0
        For Each F In Worksheets
            With Sheets(F.Name)
                Codex = Codex + Application.SumIfs(.Range("AH10:AH55"), .Range("K10:K55"), Cells(L, "C"))
            End With
        Next F
        Cells(L, "W") = Codex
    Next L
End Sub
La macro s'exécute automatiquement quand on sélectionne la feuille RECAP.
 

Pièces jointes

  • Fiche de travail.xlsm
    690.9 KB · Affichages: 5

Adri65270

XLDnaute Nouveau
Sylvanu , le résultat est top. Je n'aurais jamais réussi avec la macro. J'ai réussi à l'agrandir sur les tableaux c'est vraiment génial !
le fait de vouloir faire des recherches à partir de 2 listes déroulantes pour combiner le résultat de tout les feuillet nécessite une macro ou bien les fonctions rechercheV ou equiv suffirait? J'ai remis l'exemple en PJ

En tout cas le principal est réussi à merveille .

Merci encore

Adrien
 

Pièces jointes

  • Fiche de travail.xlsm
    668.1 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Si j'ai bien compris vous voulez faire la somme sur toutes les feuilles qui auraient sur une même ligne les deux critères ?
Donc un Equiv ou RechercheV ne suffiront pas.
Ces fonctions permettrait par ex de faire la somme des deux totaux présent sur Recap, mais de façon indépendante, non pas s'ils étaient liés.
Un ex en PJ, la macro s'exécute automatiquement lorsqu'on change un des deux critères, avec :

VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("AE15:AE19")) Is Nothing Then
         Dim Critère1, Critère2, Resultat, F
         On Error GoTo Fin:
         Application.ScreenUpdating = False
            Critère1 = [AE15]: Critère2 = [AE19]: Resultat = 0
            For Each F In Worksheets
                With Sheets(F.Name)
                    Resultat = Resultat + Application.SumIfs(.Range("AH10:AH111"), .Range("G10:G111"), Critère1, .Range("K10:K111"), Critère2)
                End With
            Next F
        [AE23] = Resultat
    End If
Fin:
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • Fiche de travail2.xlsm
    694.3 KB · Affichages: 5

Adri65270

XLDnaute Nouveau
C'était exactement cela, votre compréhension et le résultat qui en découle est exceptionnel.
En tout cas ce que je remarque c'est qu'il est dur pour des amateurs de voir la limite entre les formules excel et l'utilisation de macros.
En tout cas le résultat est la.
Merci encore
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…