Somme conditionnelle sur plusieurs feuille

krystof_ii

XLDnaute Occasionnel
Bonjour à tous,
Qq'un saurait-il comment faire une somme conditionnelle sur plusieurs feuille.

Mon 'projet' : a partir de feuilles de pointage individuel, je souhaiterais faire la somme des heures passées par affaire (dans une feuille de synthese).
Voir fichier joint.
Dans le fichier, il n'existe que 2 pers. mais en réalité je dois en gérer env.40


Pour faire la somme conditionnelle sur une seule feuille : pas de pb j'utilise la fonction somme.si.
Dans mon fichier d'exemple se serait : =SOMME.SI(A7:A25;AI8;AG7:AG25)

Peut-on utiliser la meme fonction pour plusieurs feuille : du style =SOMME.SI(DUPONT:DURAND!A7:A25;$A$2;DUPONT:DURAND!AG7:AG25) ?
Sinon, comment pourrais-je faire ?


Par avance merci,
 

Pièces jointes

  • Exemple pointage.xls
    44.5 KB · Affichages: 191

krystof_ii

XLDnaute Occasionnel
Re : Somme conditionnelle sur plusieurs feuille

Certes c'est une solution - que je n'avais pas envisagé ;-(
Par contre, je devrais effectuer une somme sur plus de 40 feuilles.

Du cout, ma formule serait tres tres longue.

Du coup 2 possibilités :
- existe-t-il une fonction qui puisse calculer cela sur une plage de plusieurs feuille ?
- sinon, je devrais créer une function sommeplsfeuille avec réccurence des feuilles ?
 

Monique

Nous a quitté
Repose en paix
Re : Somme conditionnelle sur plusieurs feuille

Bonjour,

Une plage nommée "ListOnglets"
et une formule "en 3D" :
Code:
[FONT=Verdana]=SOMMEPROD(SOMME.SI(INDIRECT(ListOnglets&"!A7:A25");A2;INDIRECT(ListOnglets&"!AG7:AG25")))[/FONT]
 

Pièces jointes

  • Somme-Si-3D-Krystof.zip
    10.6 KB · Affichages: 190

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Somme conditionnelle sur plusieurs feuille

Bonsoir,


On peut ajouter des feuilles sans modification.
Recapitulatif doit être la dernière feuille.

Voir PJ

JB
 

Pièces jointes

  • MatS3D.zip
    12.5 KB · Affichages: 149
Dernière édition:

krystof_ii

XLDnaute Occasionnel
Re : Somme conditionnelle sur plusieurs feuille

Finalement, je pensais pouvoir me débrouiller tout seul ... mais en fait non :(

Je souhaites que le récapitulatif des heures passées soit sur un autre fichier que celui du pointage :
1 fichier récapitulatif des heures par affaires,
12 fichier pointage (1 par mois).

J'ai essayé, sans résultat, plusieurs méthodes :
- plage "Listeonglet" définie dans chaque fichier pointage,
- plage "ListeOngletMois" définie dans le fichier récapitulatif.

Qq'un aurait-il une solution à me proposer ?
(en fichiers joint : le fichier récapitulatif des heures par affaires & 1 fichier de pointage).

Nota : le nb et les noms des onglets peuvent changer d'un mois à l'autre.

Par avance, merci
 

Pièces jointes

  • Suivi affaires.zip
    20.6 KB · Affichages: 65
  • Suivi affaires.zip
    20.6 KB · Affichages: 62
  • Suivi affaires.zip
    20.6 KB · Affichages: 66

krystof_ii

XLDnaute Occasionnel
Re : Somme conditionnelle sur plusieurs feuille

Merci pour ta suggestion,

Mon soucis c'est qu'il faudrait que je mette ts les fichiers de pointage à jour par rapport à ma liste d'affaires (par macro auto_open par exemple).

J'aurais préférer avoir une solution qui me permette d'exploiter une liste de valeur liée à autre fichier ...
 

krystof_ii

XLDnaute Occasionnel
Re : Somme conditionnelle sur plusieurs feuille

Je reformule différemment mon pb :
1° Pour chaque mois, j'utilise un fichier de pointage du personnel (1 onglet par personnel pour le mois; n°affaire dans la colonne A ; Total affaire colonne AG)
2° Le suivi des affaires s'effectue dans un fichier à part.

Grace au forum (et Monique ; que je remercie), je sais calculer par affaire le total des heures pointées :
Une plage nommée "ListOnglets"
et une formule "en 3D" :
=SOMMEPROD(SOMME.SI(INDIRECT(ListOnglets&"!A7:A25");A2;INDIRECT(ListOnglets&"!AG7:AG25")))

Ce que j'aurais souhaité c'est que le fichier récapitulatif calcul directement depuis chacun des fichiers de pointage les heures passés;
en d'autre terme, il faudrait faire appel à "ListOnglets" défini pour chaque fichier mensuel de pointage.

Qq'un aurait-il une solution en ce sens ?
Ou n'existe-t-il pas de solution à mon probleme ?
 

Pièces jointes

  • Suivi affaires.zip
    20.6 KB · Affichages: 73
  • Suivi affaires.zip
    20.6 KB · Affichages: 67
  • Suivi affaires.zip
    20.6 KB · Affichages: 66

krystof_ii

XLDnaute Occasionnel
Re : Somme conditionnelle sur plusieurs feuille

un grand Merci à tous (et particulierement à Monique et Boisgontier).

Grâce à vous j'ai résolu mon probleme :
- à l'ouverture de mon fichier récapitulatif, j'ouvre les 2 fichiers correspondants aux 2 derniers mois de pointage,
- j'ai créé 2 plage variable correspondant au '[nom du fichier] & Onglet
- j'ai appliqué la superbe formule 3D (convertie en 'VBA')
- je copie colle les valeurs (afin d'alleger Excel dans les calculs)
- je ferme les 2 fichiers de pointage.

Pour ceux que ca interresse, ci-dessous le code :
Sub auto_open()
'
' ouvrir_fichiers Macro
' Macro enregistrée le 30/10/2010 par krys
'
Dim i As Long
Dim fichier_synthese, fichier_mois_N, fichier_mois_N1 As String

'
fichier_synthese = ActiveWorkbook.Name

'désactivation des calculs auto
With Application
.Calculation = xlManual
.MaxChange = 0.001
End With

'-------------
'Ouverture du mois N
'-------------
Workbooks.Open(Filename:=Sheets("ListOnglets").Range("B2")).RunAutoMacros Which:=xlAutoOpen
fichier_mois_N = ActiveWorkbook.Name

Workbooks(fichier_synthese).Activate
Sheets("ListOnglets").Select
Range("B4").Select
Do
Selection.ClearContents
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value = ""
Range("B4").Select
For i = 1 To Workbooks(fichier_mois_N).Worksheets.Count
ActiveCell.Offset(i - 1, 0).Value = "[" & Range("B3") & "]" & Workbooks(fichier_mois_N).Sheets(i).Name & "'"
Next i

'-------------
'Ouverture du mois N+1
'-------------
Workbooks.Open(Filename:=Sheets("ListOnglets").Range("C2")).RunAutoMacros Which:=xlAutoOpen
fichier_mois_N1 = ActiveWorkbook.Name

Workbooks(fichier_synthese).Activate
Sheets("ListOnglets").Select
Range("C4").Select
Do
Selection.ClearContents
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value = ""
Range("C4").Select
For i = 1 To Workbooks(fichier_mois_N1).Worksheets.Count
ActiveCell.Offset(i - 1, 0).Value = "[" & Range("C3") & "]" & Workbooks(fichier_mois_N1).Sheets(i).Name & "'"
Next i

'----------------
'Mise à jour des calculs 'bleus'
'----------------
Range("P3").Select
ActiveCell.FormulaR1C1 = "=SUMPRODUCT(SUMIF(INDIRECT(""'""&Mois_N1&""!$A$8:$A$25""),RC1,INDIRECT(""'""&Mois_N1&""!$AG$8:$AG$25"")))+SUMPRODUCT(SUMIF(INDIRECT(""'""&Mois_N1&""!$A$8:$A$25""),RC1&"" HN"",INDIRECT(""'""&Mois_N1&""!$AG$8:$AG$25"")))*2"
Range("Q3").Select
ActiveCell.FormulaR1C1 = "=SUMPRODUCT(SUMIF(INDIRECT(""'""&Mois_N&""!$A$8:$A$25""),RC1,INDIRECT(""'""&Mois_N&""!$AG$8:$AG$25"")))+SUMPRODUCT(SUMIF(INDIRECT(""'""&Mois_N&""!$A$8:$A$25""),RC1&"" HN"",INDIRECT(""'""&Mois_N&""!$AG$8:$AG$25"")))*2"
Range("P3:Q3").Select
Selection.Copy
Selection.End(xlDown).Select
Range("P3:Q" & ActiveCell.Row).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Calculate
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'--------
'Fermeture des fichiers pointage
'---------
Workbooks(fichier_mois_N).Close
Workbooks(fichier_mois_N1).Close

'ré-activation des calculs auto
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With

End Sub

Attention : je n'ai pas finalisé le code : pas de test sur fichier déjà ouvert !

ENCORE UN GRAND MERCI
 

Usuule

XLDnaute Nouveau
Re : Somme conditionnelle sur plusieurs feuille

Bonjour le forum
Je réactive le post car je me suis inspiré de celui ci pour résoudre un problème.
J'ai surtout utilisé la réponse de Monique utilisant :

Une plage nommée "ListOnglets"
et une formule "en 3D" :

Code :
SOMMEPROD(SOMME.SI(INDIRECT(ListOnglets&"!A7:A25");A2;INDIRECT(ListOnglets&"!AG7:AG25")))

Mon problème c'est que cela ne fonctionne pas.
L'objectif est de ne pas utiliser de macro car la finalité de l'outil servira à une personne ayant aucune connaissance en vba

Merci à vous pour votre aide, je vous joins un fichier pour modèle de ce que j'ai fait.
 

Pièces jointes

  • Test somme.si + indirect.xls
    27.5 KB · Affichages: 104
  • Test somme.si + indirect.xls
    27.5 KB · Affichages: 108
  • Test somme.si + indirect.xls
    27.5 KB · Affichages: 110
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 101
Messages
2 085 297
Membres
102 856
dernier inscrit
primavera49