Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Somme sur une fonction non standard

  • Initiateur de la discussion Initiateur de la discussion fablog
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fablog

XLDnaute Occasionnel
Bonjour,

j'ai besoin d'aide pour modifier une somme de colonne qui fait appel à une fonction non standard. Ci-joint un fichier d'exemple; le besoin se trouve dans les cellules contenant un point d'interrogation.
J'ai reçu une aide très appréciée sur un besoin similaire, sur ce fil de discussion, car cela concernait les sommes par ligne.
Je précise que mes compétences en VBA sont très limitées.

Merci par avance pour votre aide!
 

Pièces jointes

Merci CISCO mais cela ne prend pas en compte la fonction non standard dont je parlais. Pour être plus clair, la fonction est POND et on peut voir son application dans la cellule D6. Si elle est présente dans la formule dans D6 pour la somme horizontal, elle doit etre présente dans la formule en B10 pour la somme verticale. Sinon un changement du nombre d'heure en B8, par exemple, va influencer la somme de la colonne C.

Merci!
 
Dernière édition:
Pas sûr d'avoir compris. Si c'est le cas, au plus simple il va falloir deux fonctions: une PondH et une autre PondV.
VB:
Option Explicit
Function PondH(ByVal R1 As Range, ByVal RLig As Range) As Double
Dim T1(), TL(), C As Long
T1 = R1.Value: TL = RLig.Value
For C = 1 To UBound(TL, 2)
    PondH = PondH + Coef(RLig(1, C)) * TL(1, C) * T1(1, C)
    Next C
End Function
Function PondV(ByVal V1 As Double, ByVal RCol As Range) As Double
Dim TC(), L As Long
TC = RCol.Value
For L = 1 To UBound(TC, 1)
    PondV = PondV + Coef(RCol(L, 1)) * TC(L, 1) * V1
    Next L
End Function
Function Coef(ByVal C As Range) As Double
Const Blanc = -4142, Orange = 44, Gris = 15, Mauve = 39
Select Case C.Interior.ColorIndex
     Case Orange: Coef = 1.5
     Case Gris: Coef = 1.75
     Case Mauve: Coef = 2
     Case Else: Coef = 1: End Select
End Function
En D6, à propager sur 3 lignes :
Code:
=PondH($B$1:$C$1;$B6:$C6)
En B10, à propager sur 2 colonnes :
Code:
=PondV(B$1;B$6:B$8)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
451
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…