Autres Valider une même formule SOMME.SI.ENS sur plusieurs onglets

casmaran

XLDnaute Nouveau
Bonjour à tous,
je suis en train de finaliser la création d'un carnet de vol pilote (suite à une défaillance de mon fournisseur). Dans mes statistiques je veux déterminer, entre autres, le nombre d'heures de vol en double pour un avion déterminé. Mon fichier est constitué de 32 Pages de 33 lignes toutes identiques quant au format.
Sur la 1ère page j'ai créé la formule suivante : =SOMME.SI.ENS(L6:L38;F6:F38;"CESSNA-F150")
La formule fonctionne et donne le bon résultat, je voudrai compléter cette formule en incluant l'ensemble des pages nommées Page1 à Pages32 pour ne pas avoir à le faire pour chaque page sachant que j'ai une trentaine d'avions différents à saisir.
Dans ma formule les heures sont toujours sur la même colonne. L est ma colonne des heures, F la colonne des avions.
Je n'ai pas réussi à faire cette formule, par ailleurs est-ce que SOMMPROD serait plus approprié ?
Merci par avance de votre aide.
 

chris

XLDnaute Barbatruc
Bonjour
...Sur la 1ère page j'ai créé la formule suivante : =SOMME.SI.ENS(L6:L38;F6:F38;"CESSNA-F150")
La formule fonctionne et donne le bon résultat, je voudrai compléter cette formule en incluant l'ensemble des pages nommées Page1 à Pages32 pour ne pas avoir à le faire pour chaque page sachant que j'ai une trentaine d'avions différents à saisir.
...
En génral on ne tape pas le critère (ici CESSNA-F150), on pointe vers une cellule qui le contient , ce qui permet d'avoir une formule unique

Il y a peut être d'autres solutions mais sans classeur exemple...

Quelle est ta version Excel ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Casmaran, Chris,
Si ce n'était que des sommes on pourrait le faire en 3D : =SOMME('A:C'!L6), mais ça ne marche pas avec somme.si ou somme.si.ens.
Alors en PJ une astuce qui marche.
Un peu contraignante il faut avoir la liste des feuilles, mais un peu de VBA pourra plus tard aider si ça donne satisfaction.
Ensuite une formule :
VB:
=SOMMEPROD(SOMME.SI.ENS(INDIRECT("'"&NomFeuilles&"'!L6:L38");INDIRECT("'"&NomFeuilles&"'!F6:F38");D12))
 

Pièces jointes

  • Casmaran.xlsm
    12.5 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re le fil,
Comme j'ai un peu de temps.
En PJ le même fichier mais avec un bouton qui construit la liste des onglets.
Plus simple.
VB:
Sub ListeNomfeuilles()
Dim Sh As Worksheet, CetteFeuille As String, IndexW As Integer
Range("A2:A100").ClearContents
CetteFeuille = ActiveSheet.Name
IndexW = 2
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name <> CetteFeuille Then
        Cells(IndexW, 1) = Sh.Name
        IndexW = IndexW + 1
    End If
Next Sh
ActiveWorkbook.Names.Add Name:="NomFeuilles", RefersTo:=Range("A2:A" & IndexW - 1)
Range("A2:A" & IndexW - 1).Interior.Color = RGB(250, 230, 220)
End Sub
 

Pièces jointes

  • Casmaran 2.xlsm
    22.2 KB · Affichages: 5

casmaran

XLDnaute Nouveau
Bonsoir chris,
suite à mon message de problème d'ouverture de fichier, je vous joins le fichier pour voir si vous pouvez l'ouvrir, j'essayerai demain de l'ouvrir à partir d'un autre ordi.
Bonne soirée ou bonne nuit...
 

Pièces jointes

  • CDV depuis début (Récupéré).xlsm
    475.5 KB · Affichages: 7

soan

XLDnaute Barbatruc
Inactif
Bonsoir casmaran, le fil,

J'ai réussi à ouvrir ton fichier ; il y a un message d'erreur à propos des liaisons,
mais si on clique sur le bouton « Continuer », c'est OK. :)

Image.jpg


soan
 

Pièces jointes

  • CDV depuis début.xlsm
    475.5 KB · Affichages: 5

casmaran

XLDnaute Nouveau
Bonjour sylvanu, soan, et chris,
désolé pour l'erreur de direction de post,
j'ai pu récupérer mon fichier à partir d'un autre ordi, ouf !
concernant VB je ne suis pas à l'aise car je n'ai aucune notion de programmation; j'ai essayé la formule SOMMEPROD en prenant les 4 premières Pages, mais j'ai un message d'erreur de #REF.
Je vous joins mon fichier pour que vous puissiez regarder si vous pouvez.
 

Pièces jointes

  • CDV depuis début (Récupéré).xlsm
    472.2 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re Bonjour tout le monde,
En PJ un essai avec un simple Index Equiv et Indirect : :
VB:
=SIERREUR(INDEX(INDIRECT(C$11&"!$F$65:$H$97");EQUIV($A13;INDIRECT(C$11&"!$B$65:$B$97");0);EQUIV(C$12;INDIRECT(C$11&"!$F$64:$H$64");0));"")
( A noter que j'ai supprimé toutes les cellules fusionnées pour les années, sinon il est impossible de mettre la même formule partout )
 

Pièces jointes

  • CDV depuis début (3).xlsm
    473.8 KB · Affichages: 7

casmaran

XLDnaute Nouveau
Bonjour sylvanu
j'ai essayé d'appliquer la formule VB directement sur ma Page1 mais ça me renvoie une cellule vide est-ce qu'il faut l'appliquer en passant par le développeur ?
En fait ce je voudrai arriver à faire, : dans mon classeur annexe <CDV page accueil> dans l'onglet Feuil1 cellule J43 (CESSNA-F150) c'est de rentrer l'ensemble des heures double commande pour l'ensemble des Page1 à Page32 du classeur source <CDV depuis début>.
En pièce jointe mon fichier CDV page accueil
 

Pièces jointes

  • CDV Page accueil.xlsm
    59.5 KB · Affichages: 2

casmaran

XLDnaute Nouveau
Bonjour sylvanu
je n'ai pas encore résolu mon problème mais j'ai trouvé des incohérences dans les stats de mon fichier, je vais résoudre ça et je reprendrai ensuite les infos que vous m'avez donné; en attendant je vais fermer le fil pour ne pas encombrer la messagerie.
Merci pour votre aide.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 247
Messages
2 086 591
Membres
103 248
dernier inscrit
Happycat