Besoin d'aide afin d'alléger les ressources demandées par le fic

Fermé
tetter88 - 5 juin 2015 à 10:12
tetter88 Messages postés 2 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 10 juin 2015 - 10 juin 2015 à 14:18
Bonjour a tous

Tout d'abord, d'ores et déjà merci d'avoir pris la peine de lire mon sujet.

Je cherche actuellement à construire un fichier d'analyse (ci-joint). J'ai réussi à construire l'infrastructure ainsi que les formules matricielles mais les ressources demandées pour les recherches sont énormes. je souhaiterai alléger tout cela. Malheureusement, je ne m'y connais pas en VBA. quelqu'un pourrait-il m'aider?

Merci d'avance pour votre support !

http://www.cjoint.com/c/EFfik763JxI

2 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
9 juin 2015 à 13:26
Bonjour,

tu remplaces toutes tes adresses $A:$A, $B:$B, ..... $O:$O par $A$3:$A$1000, $B$3:$B$1000, etc...

je suis passé de 2mn de recalcul à 0 seconde. J'ai pu mettre ta feuille en calcul auto.

il est possible en suite de rendre dynamique la zone à prendre en compte puis d'envisager des sommeprod() à la place des index(indirect .....))

cordialement
0
Des fois les solutions les plus simples sont les meilleures !

Merci beaucoup ! En effet, je peux également utiliser le calcul automatique désormais. C'est une très bonne avancée.

Néanmoins, je vois ce que tu veux dire par la fonction Sommeprod et c'est une bonne idée mais comment l'appliquer afin qu'il aille chercher dans une feuille préderterminée?
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
9 juin 2015 à 14:43
Bonjour,

je me rend compte qu'il faut garder le départ à 1 pour le premier INDIRECT() de INDEX().
Sinon, les résultats calculés seront décalés de 2.

exemple, en 'Analyse Clients'!B7 :
=INDEX(INDIRECT($B$1&"!$F$1:$F$1000";VRAI);MAX(SI(($B$3=INDIRECT($B$1&"!$a$3:$a$1000"))*($A7=INDIRECT($B$1&"!$b$3:$b$1000";VRAI));LIGNE(INDIRECT($B$1&"!$F$3:$F$1000";VRAI));0)))

cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
9 juin 2015 à 15:06
.... et pour le sommeprod(), toujours en 'Analyse Clients'!B7 :
=SOMMEPROD((INDIRECT($B$1&"!$F3:$F1000")*($B$3=INDIRECT($B$1&"!$a3:$a1000"))*($A7=INDIRECT($B$1&"!$b3:$b1000"))))

là, on repart bien de $F$3.

cette formule considère que les codes FP-FR sont uniques pour un code RG Client dans les onglets mois.

cdlt
0
tetter88 Messages postés 2 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 10 juin 2015
10 juin 2015 à 14:18
Tout simplement GENIAL ! (je sais qu'on ne met pas de majuscules normalement mais là, un grand merci a toi !
0