Petit pb de VB sur excel
frederic R
-
random -
random -
Bonjour!
Je voudrai effectuer en A1 l'opération suivante:
SOMMEPRODUIT[(valeur des cases de couleur rouge(exA5))*(valeur des cases dans la colonne précédent chaque cellule rouge (ex A4))]/(SOMME des cellules précédent chaque cellule rouge)
Quelqu'un peut me proposer une procédure?
Je voudrai effectuer en A1 l'opération suivante:
SOMMEPRODUIT[(valeur des cases de couleur rouge(exA5))*(valeur des cases dans la colonne précédent chaque cellule rouge (ex A4))]/(SOMME des cellules précédent chaque cellule rouge)
Quelqu'un peut me proposer une procédure?
4 réponses
-
ben tu écris une fonction ou tu tries les cellules rouges manu
-
par contre pourquoi ces cellules sont elles rouges ?
si cela dépend d'une condition logique
tu mets dans la case à coté
si(conditionlogiquequimetlacelluleenrouge;celluleenrouge*precedente;0)
tu sommes cette colonne et tu la divises par le total des rouges
-
essaye ca
Function spr(plage As Range, coul As Integer) As Double
Dim par As Range
Dim dep As Integer
Dim mult As Double
Dim spro As Double
Dim ss As Double
dep = plage.Column
For Each par In plage
If par.Column = dep Then
mult = par.Value
Else
If par.Interior.ColorIndex = coul Then
spro = spro + (mult * par.Value)
ss = ss + par.Value
End If
End If
Next
spr = spro / ss
End Function
Function couleur(a As Range) As Integer
couleur = a.Interior.ColorIndex
End Function
tu copies les deux fonctions dans un moduke
tu te mets dans une cellule
et tu tapes=spr(maplage;couleur(adressed'unecellulerouge))
évidemment ca ne gère pas les erreurs -
maplage=les cellules qui vont composer la somme des produits
tu tapes cela dans la cellule dans lequel tu veux obtenir le résultat
cela marche avec deux colonnes consécutives dont les rouges
sont à droite
par contre c'est la fonction qui va sélectionner les rouges