Fonction somme + couleur + variable

Bonjour chers utilisateur de ce forum,

je viens vers vous car je rencontre des difficultés pour adapter une fonction via VBA, je m'arrache les cheveux depuis ce matin et ne trouve pas de solution viable.

Mon problème, j'utilise une fonction spécifique (somCoul) pour sommer des textes de différentes couleurs sur ma feuille de calcul, je souhaite ajouter à cette fonction un paramètre supplémentaire qui correspond au texte de la cellule.

Je vous joins mon fichier pour que ce soit plus simple à comprendre.

Mon code source actuel est le suivant :

Function SomCoul(Zne As Range, REP As Range, Couleur As String)
Application.Volatile True

Select Case Couleur
Case "rouge"
Couleur = 3
Case "vert"
Couleur = 10
Case "jaune"
Couleur = 6
Case "bleu"
Couleur = 41
Case "violet"
Couleur = 21
Case "orange"
Couleur = 46
Case "noir"
Couleur = 1
Case "blanc"
Couleur = 2
End Select

For Each cell In Zne

If cell = REP & cell.Font.ColorIndex = Couleur Then cvSomme = cvSomme + 1

Next
SomCoul = cvSomme
End Function

Je vous remercie par avance de votre aide.

Cordialement.

Bonjour skiner

Quelque chose comme ça :

If (cell.Value = REP.Value) And (cell.Font.ColorIndex = Val(Couleur)) Then
    cvSomme = cvSomme +1
End If

à la place de ton test devrait fonctionner !


le pseudo c'est une référence à X-Files ?

Bonjour NCC 1701,

Alors la je te félicite pour ton aide, j'ai copier collé ton morceau de script, et sa fonctionne parfaitement bien !

pour ceux qui recherche une fonction qui somme selon la couleur du texte couplé au texte de la cellule, je vous transmet le script ci-dessous :

' FONCTION : Somme selon couleur du texte + texte spécifique
Function SomCoul(Zne As Range, REP As Range, Couleur As String) ' zne = votre zone de recherche, REP = le texte que vous recherchez
Application.Volatile True

' Paramétrage des couleurs que l'on recherche
Select Case Couleur
Case "rouge"
Couleur = 3
Case "vert"
Couleur = 10
Case "jaune"
Couleur = 6
Case "bleu"
Couleur = 41
Case "violet"
Couleur = 21
Case "orange"
Couleur = 46
Case "noir"
Couleur = 1
Case "blanc"
Couleur = 2
End Select

For Each cell In Zne

If (cell.Value = REP.Value) And (cell.Font.ColorIndex = Val(Couleur)) Then
    cvSomme = cvSomme + 1
End If
Next
SomCoul = cvSomme
End Function

Encore un grand merci pour ton aide.

@ bientôt.

Bonjour skiner

skiner a écrit :

Alors la je te félicite pour ton aide

skiner a écrit :

j'ai copier collé ton morceau de script, et sa fonctionne parfaitement bien !

tant mieux ! c'est pour ça que je l'ai encodé !

Par contre tu n'as pas répondu à :

NCC 1701 a écrit :

le pseudo c'est une référence à X-Files ?

skiner a écrit :

Par contre tu n'as pas répondu à :

NCC 1701 a écrit:

Oui, j'adorais cette série et à cette époque je cherchais un pseudo, Mulder étant déjà utilisé à outrance, j'ai opté pour skiner.

Merci encore.

Rechercher des sujets similaires à "fonction somme couleur variable"