Addition et police barrée
Le
DoMi

Bonjour,
Est-il possible de ne pas tenir compte, dans une addition, des
cellules dont la police est barrée ou d'une certaine couleur?
Merci
Est-il possible de ne pas tenir compte, dans une addition, des
cellules dont la police est barrée ou d'une certaine couleur?
Merci
Il vaudrait mieux éviter même l'utilisation de ce genre de fonction:
Function SumRouge(plg As Range)
Application.Volatile
Dim c As Range
For Each c In plg.Cells
If IsNumeric(c.Value) And c.Interior.ColorIndex <> 3 Then
SumRouge = SumRouge + c.Value
End If
Next c
End Function
est possible mais cela oblige à rappuyer sur F9 à chaque changement ou
mobilise une automatisation perpétuelle , cyclique ou systématique du
recalcul .
Pourquoi cela... tout simplement parceque la modification d'un format
ne génère pas naturellement un recalcul.
Pour y palier on peut utiliser plusieurs évènements en VBA ou bien
plus radicalement un Ontime pour que cela recalcule tout les
secondes par exemple ainsi si tu change un format l'addition se
recalculerait. Mais même quand tu n'en a plus besoin cet event sera
sollicité.. autre event possible le changement de selectio
exemple dans le thisworkbook
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target As Range)
Calculate
End Sub
Ainsi des que tu change de cellule (apres coloriage) le calcul se
refait.
Il demeure nettement préférable amha de déterminer la condition selo n
laquelle on aurait envie de barrer ou colorer certains et ainsi
conditionner le calcul.
Exemple faire la somme de f qd B est sup à 0:
=sommeprod(($B$2:$B$100>0)*($F$2:$F$100))
Ce qui n'empêchera pas d'agrémenter l'aspect visuel au moyen d'une
MEFC qui colore en rouge les lignes ou B serait inf à zero.
Cordialement.
--
LSteph
On Nov 3, 10:10 am, DoMi
Merci, ça me convient tout à fait !
Voilà ce que je souhaite faire:
En colonne A, j'ai des noms de 10 produits,
en colonne B, les prix de ces produits, avec le total en bas, en B11
Pour voir le montant total de ma commande, suivant que je choisis tel
ou tel produit, je barre ceux que j'écarte en copiant le format d'une
cellule de référence avec le bouton de reproduction de la mise en
forme. Les prix sont donc visibles, mais barrés. Si je change d'avis,
je "débarre"...
J'ai mis en B11 : = Sum_Police(B1:B10)
et dans un module:
Function Sum_Police(Plg As Range) As Double
Dim C As Range
For Each C In Plg.Cells
If C.Font.Strikethrough = False Then
Sum_Police = Sum_Police + C.Value
End If
Next
End Function
Le calcul est automatique dès que je modifie le format de la police.
Merci pour ton aide !
DoMi
Oui, j'aurais pu commencer par ça : Excel 2003.
Oui, comme l'a montré LSteph, mais il a raison, ça risque d'être
grandement plus simple de créer une troisième colonne entre les deux,
qui contient vrai ou faux. ça mérite aussi un traitement complément aire,
un format conditionnel est le plus rapide à mettre en place pour mettre
la sélection plus en évidence, mais ça oblige à saisir la valeur (vrai
ou faux) dans la cellule de sélection. On peut aussi mettre une case à
cocher par ligne, si je ne suis pas trop en retard c'est plus long à fa ire.