Macro qui adapte une formule automatiquement

Résolu
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

2 réponses

  1. 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
    1. 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
  2. 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
    1. C'est super ! Merci infiniement ;)
      0

Discussions similaires

exo pix

2 réponses