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

tetter88 -  
tetter88 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   859
 
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
Tetter88
 
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   Statut Membre Dernière intervention   859
 
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   Statut Membre Dernière intervention   859
 
.... 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   Statut Membre Dernière intervention  
 
Tout simplement GENIAL ! (je sais qu'on ne met pas de majuscules normalement mais là, un grand merci a toi !
0