SOMMEPROD, INDIRECT sur plusieurs feuilels + VBA

Bonsoir à tous,

J'ai recherché sur le forum, il existe des cas similaires, mais qui ne répondent pas à ma double problématique, à savoir:

1) Réduire cette affreuse formule grâce à SOMMEPROD+INDIRECT + DECALER sur plusieurs feuilles

2) Exécuter cette somme sur vba

Voici mon affreuse formule et Merci d'avance pour votre précieuse aide...:

=SOMME(SI(('Billetage CP'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage CP'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage CP'!$D$8:$O$20))

+SOMME(SI(('Billetage Monnaie'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage Monnaie'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage Monnaie'!$D$8:$O$20))

+SOMME(SI(('Billetage C01'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage C01'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage C01'!$E$8:$O$20))

+SOMME(SI(('Billetage C02'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage C02'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage C02'!$D$8:$O$20))

+SOMME(SI(('Billetage C03'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage C03'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage C03'!$D$8:$O$20))

(fichier ci-joint)

JeanBa

ben ... pas vu le fichier !!

Au lieu de

=SOMME(SI(('Billetage CP'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage CP'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage CP'!$D$8:$O$20))

validé en matriciel

tu peux mettre

=SOMMEPROD(('Billetage CP'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage CP'!$C$8:$C$20='PV DE CAISSE'!$D36)*('Billetage CP'!$D$8:$O$20))

je ne vois aucune simplification possible !

Mais pour les dates, il y a plus simple (c'est un autre sujet)


Il y avait aussi une erreur sur la formule :

=SOMME(SI(('Billetage CP'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage CP'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage CP'!$D$8:$O$20))
+SOMME(SI(('Billetage Monnaie'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage Monnaie'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage Monnaie'!$D$8:$O$20))
+SOMME(SI(('Billetage C01'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage C01'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage C01'!$D$8:$O$20))
+SOMME(SI(('Billetage C02'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage C02'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage C02'!$D$8:$O$20))
+SOMME(SI(('Billetage C03'!D$1:O$1='PV DE CAISSE'!$A$1)*('Billetage C03'!$C$8:$C$20='PV DE CAISSE'!$D36);'Billetage C03'!$D$8:$O$20))

au lieu de'Billetage C01'!$E$8:$O$20 quelque part !


INDIRECT ne permettra pas de simplifier ici !


>>>

Tu peux faire ceci :

=DECALER('Billetage CP'!C8;;$A$1;)+DECALER('Billetage Monnaie'!C8;;$A$1;)+DECALER('Billetage C01'!C8;;$A$1;)+DECALER('Billetage C02'!C8;;$A$1;)+DECALER('Billetage C03'!C8;;$A$1;)

Impeccable!

Problème de formule résolu!

Merci beaucoup!

Jeanba

Il faut bien évidemment que la structure des feuilles soient identiques.

Au passage, simplifie tes dates, exemple pour le 31/12/2016 :

AVANT =

=TEXTE(FIN.MOIS(DATE(Exercice;COLONNE(L:L);1);0);"jj/mm/aaaa")

APRES =

=DATE(Exercice;O1+1;0)

la fin de mois est le jour 0 du mois suivant, et cela fonctionne aussi pour décembre !

Rechercher des sujets similaires à "sommeprod indirect feuilels vba"