Resultat d'une formule VBA dans ma plage de donnée

skid7

XLDnaute Nouveau
Bonjour,

Je sais que la question a été posé mais ma question diffère un peut.
En effet, je sais mettre une formule via VBA dans une cellule, le problème c'est que je ne veut que le résultat.
J'ai donc codé en conséquence, sauf que j'aimerai que ce calcul fait dans VBA s'applique sur toute ma plage et non sur une cellule et qu'il prenne en compte du coup, la position de chaque cellule...

En gros c'est comment "tirer ma formule" dans vba ????

La formule dans le tableur c'est : =SIERREUR((INDEX(Forecast!$A$2:$FX$1188;EQUIV(Data!$K30;Forecast!$A$2:$A$1188;0);EQUIV(Data!AD$29;Forecast!$A$2:$FX$2;0)))/(NB.SI(Data!$K$30:$K$4000;Data!$K30));0)

Soit, Index(equiv;equiv) / NB.SI

En VBA pour avoir le résultat j'ai codé ça :

Sub Macro5()

Dim Equiv1 As String
Dim Equiv2 As String
Dim index As String
Dim count As String
Dim resultat As String

Equiv1 = WorksheetFunction.Match(Sheets("Data").Range("k30"), Sheets("Forecast").Range("A2:A1188"), 0)
Equiv2 = WorksheetFunction.Match(Sheets("Data").Range("AD29"), Sheets("Forecast").Range("a2:fx2"), 0)
index = WorksheetFunction.index(Sheets("Forecast").Range("A2:FX1188"), Equiv1, Equiv2)
count = WorksheetFunction.CountIf(Sheets("Data").Range("k30:k4000"), Sheets("Data").Range("k30"))
resultat = index / count

ThisWorkbook.Sheets("DATA").Range("AD30:FQ4000").Value = resultat

End Sub


Sauf qu'il me prend en compte que "k30" et "f29", c'est bien pour le résultat en "AD30" mais pour les autres cellules niet.

J'espère que je suis clair sinon je vous enverrai mon fichier (le temps de le modifier un peut)

Merci pour votre aide car j'ai pas envie de faire une formule pour chaque cellule.


En gros le k30 c'est pour AD30, le k31 c'est pour AD 31 etc. (tirer la formule vers le bas)
Et le AD29 pour AD30 jusqu'à AD 4000, le AE 29 pour AE30--> AE4000 etc. (tirer la formule à droite)
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 884
Membres
103 982
dernier inscrit
krakencolas