récap conditionnelle

IBOURKSIMO

XLDnaute Nouveau
Bonjour
après avoir passé plusieurs heures a travailler sur mon problème et malheureusement j'ai pas arrivé a trouver la solution.
mon problème est le suivant :
j'ai 3 feuilles et dans la 4éme j'aimerais avoir une synthèse ,
dans l'exemple ci-joint le travail est facile parce qu'il ne s'agit que de 3 feuilles; mais dans la réalité c'est un peu dure.

J'espère que vous m'aideriez a travers une macros qui sélectionne toute les feuilles et fasse le calcul automatique.

merci à vous
 

Pièces jointes

  • somme si.xlsx
    11.8 KB · Affichages: 45
  • somme si.xlsx
    11.8 KB · Affichages: 43
  • somme si.xlsx
    11.8 KB · Affichages: 49

Dranreb

XLDnaute Barbatruc
Re : récap conditionnelle

Bopnjour.
cette formule en B6 peut être recopiée dans tout le tableau:
Code:
=SOMME.SI(INDIRECT("'"&$A6&"'!$B$5:$B$9");B$5;INDIRECT("'"&$A6&"'!$C$5:$C$9"))
Et cette fonction rendrait en colonne A les noms de feuilles par:
Code:
=NomFeui(LIGNE()-5)
VB:
Function NomFeui(ByVal N As Long) As String
NomFeui = ThisWorkbook.Worksheets(N).Name
End Function
Bonne soirée.
 

Dranreb

XLDnaute Barbatruc
Re : récap conditionnelle

Bonjour.
Voilà le fichier demandé.
Alt F11 devrait toujours encore vous permettre d'aller rapidement dans VBA
Cordialement.
 

Pièces jointes

  • SommeSi.xls
    42.5 KB · Affichages: 47
  • SommeSi.xls
    42.5 KB · Affichages: 48
  • SommeSi.xls
    42.5 KB · Affichages: 47

IBOURKSIMO

XLDnaute Nouveau
Re : récap conditionnelle

Bonjour.
Voilà le fichier demandé.
Alt F11 devrait toujours encore vous permettre d'aller rapidement dans VBA
Cordialement.

Merci à vous
si vous permettez bien ,je me demande si il y a une possibilité afin de regrouper dans une nouvelle feuille le détails de chaque code
voir feuille synthèse
 

Pièces jointes

  • Copie de SommeSi.xls
    43.5 KB · Affichages: 39

IBOURKSIMO

XLDnaute Nouveau
Re : récap conditionnelle

Bopnjour.
cette formule en B6 peut être recopiée dans tout le tableau:
Code:
=SOMME.SI(INDIRECT("'"&$A6&"'!$B$5:$B$9");B$5;INDIRECT("'"&$A6&"'!$C$5:$C$9"))
Et cette fonction rendrait en colonne A les noms de feuilles par:
Code:
=NomFeui(LIGNE()-5)
VB:
Function NomFeui(ByVal N As Long) As String
NomFeui = ThisWorkbook.Worksheets(N).Name
End Function
Bonne soirée.

Bonjour
j'ai pas compris cette formule :
=SOMME.SI(INDIRECT("'"&$A6&"'!$B$5:$B$9");B$5;INDIRECT("'"&$A6&"'!$C$5:$C$9"))
merci
 

Dranreb

XLDnaute Barbatruc
Re : récap conditionnelle

Personnellement je m'efforcerait de faire éviter la redondance en faisant imposer la saisie dans une seule feuille sous la forme de votre Nouvelle feuille unique.
Si ce n'est pas possible,
Copiez au bout-le-bout les trois tableaux en ajoutant la Nature de chacun puis demandez un tri de l'ensemble sur le Code.
Avant de faire l'opération, demandez à enregistrer une nouvelle macro, puis optimisez et rendez autoadatptatif le code engendré. Soumettez le moi les bouts de codes que vous n'arrivez pas à retoucher.

=SOMME.SI(INDIRECT("'"&$A6&"'!$B$5:$B$9");B$5;INDI RECT("'"&$A6&"'!$C$5:$C$9"))
INDIRECT permet de faire considérer à Excel une expression chaîne comme une référence de plage.
La colonne A contenant des noms de feuilles, vous pouvez voir que sa concaténation avec les parties constantes des expressions donne des adresses de plages valides pour la fonction SOMME.SI.

À+
 
Dernière édition:

Discussions similaires

Réponses
36
Affichages
2 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom