Macro qui adapte une formule automatiquement

Résolu
Ljonnier Messages postés 33 Statut Membre -  
Ljonnier Messages postés 33 Statut Membre -
Bonjour,

Je viens solliciter votre aide, dans un fichier excel j'ai beaucoup de donnees concernant un portefeuille, chaque jours je recois un nouveau fichier de data qui viens se coller dans mon fichier principal a l'aide d'une macro, j'ai donc des tableaux de donnees qui arrivent tous les jours et qui varient en taille.

Une de mes formules fait references a ces tableaux, comment puis je faire (par l'intermediaire d'une macro) etendre cette formule pour quelle corresponde automatiquement au bon nombre de lignes ?

ma formule : =SUMPRODUCT('PERFORMANCE EURO'!$AF$1:$DKE$1,'PERFORMANCE EURO'!AF22:DKE22)/'PERFORMANCE EURO'!$AE$1"

Vous l'aurez compris le DKE22 peux tres bien varier et se transformer en DKE450 ou plus.

Je precise ma formule fait reference a un onglet du meme fichier excel, celui ou les fameux tableaux arrivent.


D'avance, un grand merci


A voir également:

2 réponses

DjiDji59430 Messages postés 4323 Statut Membre 701
 
Bonjour,


=SUMPRODUCT('PERFORMANCE EURO'!$AF$1:$DKE$1,'PERFORMANCE EURO'!AF22:DKE22)/'PERFORMANCE EURO'!$AE$1"

Essaye


=SUMPRODUCT(DECALER('PERFORMANCE EURO'!$AF$1;0;0;1;EQUIV(9^9^9;1:1;1)-COLONNE('PERFORMANCE EURO'!$AF$1)+1),DECALER('PERFORMANCE EURO'!$AF$22;0;0;1;EQUIV(9^9^9;1:1;1)-COLONNE('PERFORMANCE EURO'!$AF$22)+1)/'PERFORMANCE EURO'!$AE$1"

Tu peux remplacer -COLONNE('PERFORMANCE EURO'!$AF$1)+1) par sa valeur (que je n'ai pas calculée)

Crdmt
0
Ljonnier Messages postés 33 Statut Membre
 
Lorsque je rentre la formule cette derniere ne marche pas helas.

Par contre je recherche plutot une macro, un code VBA qui m'automatiserais tout ca j'ai vu qu'il etait question de xlDown mais j'ai beaucoup de mal a mettre tout ca en forme.
0
Gyrus Messages postés 3360 Statut Membre 526
 
Bonjour,

Si toutes les cellules de la plage AF1:AFx sont remplies, tu peux effectuer le comptage des lignes afin de décaler la plage au fur et à mesure du remplissage.

Pour simplifier la formule, tu crées 3 plages nommées :
Plage1 : ='PERFORMANCE EURO'!$AF$1:$DK$1
Plage2 : =OFFSET('PERFORMANCE EURO'!AF1:DK1,COUNTA('PERFORMANCE EURO'!$AF:$AF)-1,0)
Plage3 : ='PERFORMANCE EURO'!$AE$1


Résultat :
=SUMPRODUCT(Plage1,Plage2)/Plage3


et si tu veux absolument une macro (avec le résultat dans la cellule A2 de la feuille active :
Sub Test()
With Worksheets("PERFORMANCE EURO")
ActiveSheet.Range("A2") = Application.SumProduct(.Range("$AF$1").Resize(, 84), .Range("$AF$1").End(xlDown).Resize(, 84)) / .Range("$AE$1")
End With
End Sub


A+
0
Ljonnier Messages postés 33 Statut Membre
 
C'est super ! Merci infiniement ;)
0