Bonjour à tout le monde
Je vous soumets mon problème :
J'aimerai cacher mes formules que j'ai mis pas mal de temps à faire sur un fichier excel en les transposant en une fonction personnalisé sous VBA.
la formule sous excel donne :
Logement correspond à un : =DECALER(A77;;4;;NBVAL(77:77)-3).
Code : Sélectionner tout - Visualiser dans une fenêtre à part SIERREUR(SOMMEPROD((ESTNUM(EQUIV(Logement;E202:O202;0)))*QuantiteEF);0)
QuantitéEF correspond à un : =DECALER(A77;20;4;;NBVAL(77:77)-3).
J'aimerais dans la mesure du possible faire une formule avec le critère: A77 (qui n'est pas forcement la cellule choisi)
en gros la formule complète donne SIERREUR(SOMMEPROD((ESTNUM(EQUIV(DECALER(A77;;4;;NBVAL(77:77)-3);E202:O202;0)))*DECALER(A77;20;4;;NBVAL(77:77)-3));0).
J'avais commencé à faire un bout de code en décomposant petit à petit mais je me perds énormément dans les variable que je ne maîtrise pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Function NBAPSEF(Lgt) Application.Volatile 'Range(Lgt).End(xlToRight).Column address NBAPSEF = WorksheetFunction.SumProduct((WorksheetFunction.ISNUMBER(WorksheetFunction.MATCH(Range(Lgt).Address, E202:O202, 0))) * Range(lgt).offset(20,4).Address) End Function
Pourriez vous m'aider un tantinet
En vous remerciant par avance
Gilles
Partager