Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calculer suivant la couleur texte

5 réponses
Avatar
claude
Bonjour à tous

je cherche à pouvoir calculer une somme suivant la couleur du texte (suivant
la couleur du nom )

ex: a1( nom en noir)b1(12 )c1(10)somme en d1=(22)
a2 (nom en rouge) b2(18)c2(14)somme en e2=(32)

une colonne pour les chiffres en noir(d) et une pour les chiffres en
rouge(e)


merci pour une info

Claude

5 réponses

Avatar
MichelB
Bonjour

Une fonction récupérée sur ce forum :
Dans un module standard

Function SumParCouleur(PlageEntree As Range, CouleurFont As Range) As Double
Dim Cell As Range, TempSum As Double, ColorIndex As Integer
ColorIndex = CouleurPlage.Cells(1, 1).Font.ColorIndex
TempSum = 0
On Error Resume Next
For Each Cell In PlageEntree.Cells
If Cell.Formula <> "" Then
If Cell.Font.ColorIndex = ColorIndex Then TempSum = TempSum +
Cell.Value
End If
Next Cell
On Error GoTo 0
Set Cell = Nothing
SumParCouleur = TempSum
End Function

Pour l'utiliser, écrire dans la cellule résultat :
=SumParCouleur(G9:G21;G9)

Indiquer la plage et la cellule qui contient la bonne couleur

Salut

claude wrote:
Bonjour à tous

je cherche à pouvoir calculer une somme suivant la couleur du texte
(suivant la couleur du nom )

ex: a1( nom en noir)b1(12 )c1(10)somme en d1=(22)
a2 (nom en rouge) b2(18)c2(14)somme en e2=(32)

une colonne pour les chiffres en noir(d) et une pour les chiffres en
rouge(e)


merci pour une info

Claude


Avatar
claude
Merci pour le contact, mais je cherche la formule sans un useform(je ne suis
pas encore former pour la macro
merci
claude
"MichelB" a écrit dans le message de news:
%
Bonjour

Une fonction récupérée sur ce forum :
Dans un module standard

Function SumParCouleur(PlageEntree As Range, CouleurFont As Range) As
Double
Dim Cell As Range, TempSum As Double, ColorIndex As Integer
ColorIndex = CouleurPlage.Cells(1, 1).Font.ColorIndex
TempSum = 0
On Error Resume Next
For Each Cell In PlageEntree.Cells
If Cell.Formula <> "" Then
If Cell.Font.ColorIndex = ColorIndex Then TempSum = TempSum +
Cell.Value
End If
Next Cell
On Error GoTo 0
Set Cell = Nothing
SumParCouleur = TempSum
End Function

Pour l'utiliser, écrire dans la cellule résultat :
=SumParCouleur(G9:G21;G9)

Indiquer la plage et la cellule qui contient la bonne couleur

Salut

claude wrote:
Bonjour à tous

je cherche à pouvoir calculer une somme suivant la couleur du texte
(suivant la couleur du nom )

ex: a1( nom en noir)b1(12 )c1(10)somme en d1=(22)
a2 (nom en rouge) b2(18)c2(14)somme en e2=(32)

une colonne pour les chiffres en noir(d) et une pour les chiffres en
rouge(e)


merci pour une info

Claude






Avatar
MichelB
Re

Il n'y pas besoin de connaître VBA pour écrire cette fonction.
Tu fais Alt + F11

Dans l'éditeur, tu sélectionnes à gauche ton classeur
Tu cliques dans la barre de menus sur Insertion, puis Module

Tu ouvres le module1 créé et tu colles ce code, c'est tout.
Tu reviens, après avoir enregistré, dans Excel et tu fais

=SumParCouleurFont(Plage;Cellule contenant la couleur)

Function SumParCouleurFont(PlageEntree As Range, CouleurFont As Variant) As
Double
Dim Cell As Range, TempSum As Double, ColorIndex As Variant
ColorIndex = CouleurFont.Cells(1, 1).Font.Color
TempSum = 0
On Error Resume Next
For Each Cell In PlageEntree.Cells
If Cell.Formula <> "" Then
If Cell.Font.Color = ColorIndex Then TempSum = TempSum +
Cell.Value
End If
Next Cell
On Error GoTo 0
Set Cell = Nothing
SumParCouleurFont = TempSum
End Function


C'est pas compliqué ! ;o)

--
Salut ;o)
Michel
Avatar
gg
Sinon, il y a Excel 2007 qui sait le faire sans PB.

Bon, c'est vrai qu'elle n'est qu'un beta 2. mais çà marche.

GG
"claude" a écrit dans le message de news:

Bonjour à tous

je cherche à pouvoir calculer une somme suivant la couleur du texte
(suivant la couleur du nom )

ex: a1( nom en noir)b1(12 )c1(10)somme en d1=(22)
a2 (nom en rouge) b2(18)c2(14)somme en e2=(32)

une colonne pour les chiffres en noir(d) et une pour les chiffres en
rouge(e)


merci pour une info

Claude





Avatar
RGI
si je peux, j'ajouterai dans la feuille en question

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub

Salutations

RGI


Re

Il n'y pas besoin de connaître VBA pour écrire cette fonction.
Tu fais Alt + F11

Dans l'éditeur, tu sélectionnes à gauche ton classeur
Tu cliques dans la barre de menus sur Insertion, puis Module

Tu ouvres le module1 créé et tu colles ce code, c'est tout.
Tu reviens, après avoir enregistré, dans Excel et tu fais

=SumParCouleurFont(Plage;Cellule contenant la couleur)

Function SumParCouleurFont(PlageEntree As Range, CouleurFont As Variant) As
Double
Dim Cell As Range, TempSum As Double, ColorIndex As Variant
ColorIndex = CouleurFont.Cells(1, 1).Font.Color
TempSum = 0
On Error Resume Next
For Each Cell In PlageEntree.Cells
If Cell.Formula <> "" Then
If Cell.Font.Color = ColorIndex Then TempSum = TempSum +
Cell.Value
End If
Next Cell
On Error GoTo 0
Set Cell = Nothing
SumParCouleurFont = TempSum
End Function


C'est pas compliqué ! ;o)