XL 2019 Somme en fonction de plusieurs critères

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 !

team18fr

XLDnaute Occasionnel
Bonjour à tous,

Je cherche comment faire pour faire la somme suivant 2 critères. le premier une lettre et le deuxième une couleur et le tous sur plusieurs feuilles.
Sur le fichier joint dans l'onglet résultat je cherche à avoir la somme de toute les cellules A en vert, B et C.
J'arrive à faire la somme des cellules avec les lettres mais seulement sur une seule feuille et lorsque que je rajoute le critère couleur, ça ne marche pas.
Merci d'avance pour votre aide.
 

Pièces jointes

Bonjour team18fr, le forum,
VB:
Function MaSomme#(txt$)
Application.Volatile
Dim nf$, coul&, w As Worksheet, c As Range
nf = Application.Caller.Parent.Name
coul = Application.Caller.Interior.Color
For Each w In Worksheets
    If w.Name <> nf Then
        For Each c In w.UsedRange
            If c.Row > 1 Then If c(0) = txt And IsNumeric(c) Then _
                If c.Interior.Color = coul Then MaSomme = MaSomme + CDbl(c)
        Next c
    End If
Next w
End Function
A+
 

Pièces jointes

Bonjour et merci pour ton aide.
Ta macro fonctionne très bien mais je ne vais pas rechercher que des A ou des B mais aussi des 17N, 18N ou 17J et la ça marche plus.

Encore merci je viens de comprendre c'est vraiment top.
@+
 
Dernière édition:
Bonjour team18fr,
Bon mon fichier est trop gros et le calcule automatique le fait ramer.
Pour arranger un peu les choses voyez ce fichier (2) :

- la fonction MaSomme a été rendue non volatile en supprimant Application.Volatile

- le bouton Calcul a été créé avec sa macro :
VB:
Private Sub CommandButton1_Click() 'bouton Calcul
With Application
    .ScreenUpdating = False: .Calculation = xlCalculationManual: .EnableEvents = False
    With [A2:C2] 'à adapter
        .Formula = "=Masomme(A1)"
        .Value = .Value 'supprime les formules
    End With
    .Calculation = xlCalculationAutomatic: .EnableEvents = True
End With
End Sub
A+
 

Pièces jointes

Bonjour,
Je reviens vers vous car j'ai fais un deuxième fichier à l'identique de mon premier en collant les même formule et il ne veut pas fonctionner. Lorsque je clique sur mon bouton il m'indique "Erreur d'exécution 13: incompatibilité de type" et quand je fais Débogage il me renvoi sur le module sur cette ligne en jaune
VB:
If c(0) = txt And IsNumeric(c) Then _
et sur le "c" j'ai "c=erreur 2007" et je ne sais pas à quoi cela correspond.
 
Bonjour team18fr, le forum,

Le bug est dû au fait que la cellule c(0) contient une valeur d'erreur (2007 => #DIV/0!)..

Pour l'éviter remplacez :
VB:
If c.Row > 1 Then If c(0) = txt And IsNumeric(c) Then _
par :
VB:
If c.Row > 1 Then If CStr(c(0)) = txt And IsNumeric(c) Then _
A+
 
Encore merci pour ton aide et la au lieu de compter le chiffre qui est sous la couleur verte dans le fichier plus haut, je voudrais pouvoir compter tout les "ess" qui sont dans la couleur jaune par exemple, mais toujours en fonction de la cellule du dessus.

@+
 

Pièces jointes

- 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
8
Affichages
130
Réponses
2
Affichages
458
Réponses
3
Affichages
116
Retour