Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Somme.si.ens avec 1 critère couleur et 1 critère texte

Merlin258413

XLDnaute Occasionnel
Bonjour à tous
je viens solliciter votre aide car je suis à la recherche d'une fonction je pense par VBA qui me permettrait de faire un somme.si.ens avec 1 critère couleur et un 2ème texte.
Si je reviens dans le concret j'ai plusieurs agences qui doivent réaliser un certain objectif de facturation mais les estimations que me remettent les commerciaux sont conditionnées (Problème de BL ou de commandes)

J'avais trouvé une fonction VBA permettant de faire simplement un somme.si couleur ci-dessous le code mais je ne sais pas comment intégrer l'agence
VB:
Public Function SomCoul(p As Range, c As Range)

Dim coul As Long, s, cel
Application.Volatile
coul = c.Interior.ColorIndex
s = 0
For Each c In p
  If c.Interior.ColorIndex = coul Then s = s + c.Value
Next c
SomCoul = s
End Function
Dans le fichier joint le vous indique le résultat attendu tableau A12:e17

En vous remerciant pour votre aide
 

Pièces jointes

  • Tests.xlsm
    16 KB · Affichages: 6
Solution
Bonjour,

J'avais le cerveau déconnecté hier apparemment. Voici le fichier corrigé.
Pour information, dans les cellule de la feuille synthèse, les valeurs données par la formule correspondent à la somme de tout ce qu'il trouve.
S'il trouve pour toto en rouge : 50 et 10, alors il affichera 60.

Ikito

XLDnaute Occasionnel
Bonjour,

En supposant que ton critère est en A1 et est "Agence machin"
Après le Then, ton traitement, ici dans la variable s.

VB:
  If c.Interior.ColorIndex = coul And Cells(1,"A") = "Agence machin" Then s = Résultat
 

Ikito

XLDnaute Occasionnel
VBA Modifié :

VB:
Public Function SomCoul(p As Range, c As Range, val As String)

Dim coul As Long, s, cel
Application.Volatile
coul = c.Interior.ColorIndex
s = 0
For Each c In p
  If c.Interior.ColorIndex = coul And val Like Cells(c.Row, (c.Column) - 2) Then s = s + c.Value
Next c
SomCoul = s
End Function

Utilisation :
Dans une cellule : =SomCoul(p;c;val)
Avec :
p : La matrice de recherche
c : La couleur à chercher
val : La valeur à chercher (ici l'agence)
 

Pièces jointes

  • Tests.xlsm
    17.1 KB · Affichages: 7

Merlin258413

XLDnaute Occasionnel
Un grand merci Ikito
maintenant si je corse un peu le problème j'ai pris la même structure que mon véritable fichier de travail,c'est à dire que ce calcul s'effectue dans un onglet Synthèse et les données dans un fichier données. Si je modifie p :la matrice de recherche je n'ai rien qui remonte ?

Petites questions pour apprendre
1- A quoi fait référence le -2 de Cells(c.Row, (c.Column) - 2)
2- pourquoi la matrice de recherche n'intègre pas C2:C6 n'intègre pas les agences A2:C6
Comment Excel arrive t'il à faire le lien entre les données et les résultats

Merci beaucoup
 

Pièces jointes

  • Tests V2.xlsm
    16.3 KB · Affichages: 3

Ikito

XLDnaute Occasionnel
Le -2 permet de faire le lien entre les données et les résultats. Sans le -2 on pointe sur la couleur et la valeur numérique, avec le -2, on pointe sur le nom de l'agence.

Le -2 à modifier par -4 avec la structure de ton tableau dans "DONNEES". Sans le -4 on pointe sur E (5eme colonne) à avec le -4 on pointe sur A (5-4 = 1ere colonne), donc le nom des agences
 

Merlin258413

XLDnaute Occasionnel
Ok Merci dans monpost précédent test V2 etcompte tenu de la structure réel de mon fichier j'ai remplacé le 2 par 4 et la formule de vient =SomCoul('DETAIL PREVISIONS'!$E$9:$E$5000;J$2;$A3)
Pouvez-vous me dire pourquoi cela ne fonctionne pas ?
Pourtant la colonne Agence est bien 4 colonne en amont de l'estimation dans l'onglet DONNEES


VB:
Public Function SomCoul(p As Range, c As Range, val As String)
Dim coul As Long, s, cel
Application.Volatile
coul = c.Interior.ColorIndex
s = 0
For Each c In p
If c.Interior.ColorIndex = coul And val Like Cells(c.Row, (c.Column) - 4) Then s = s + c.Value
Next c
SomCoul = s
End Function
 

Merlin258413

XLDnaute Occasionnel
C'est encore moi je crois que cette fontion me rend chèvre mais j'en ai tellement besoin
Je ne sais pas pourquoi mais la somme ne s'effectue pas correctement par exemple cellule en rouge
J9 ce montant devrait remonter sur l'agence AKFARB et J12 aussi
De plus dans détail j'ai des sommes qui ne remontent pas


De plus dès que je fais une sauvegarde ou une modification sur Synthèse je dois faire un aller retour sur DETAIL valider une cellule pour voir apparaître mes résultats pour certains faux
 

Pièces jointes

  • PREVISION FACTURATION 2020 02 test2.xlsm
    35.4 KB · Affichages: 5

Ikito

XLDnaute Occasionnel
Bonjour,

J'avais le cerveau déconnecté hier apparemment. Voici le fichier corrigé.
Pour information, dans les cellule de la feuille synthèse, les valeurs données par la formule correspondent à la somme de tout ce qu'il trouve.
S'il trouve pour toto en rouge : 50 et 10, alors il affichera 60.
 

Pièces jointes

  • PREVISION FACTURATION 2020 02 test2.xlsm
    34.1 KB · Affichages: 11

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…