Formule somme.si avec pour condition une couleur de fond.

[Résolu/Fermé]
Signaler
Messages postés
3
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
7 juin 2013
-
Messages postés
3
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
7 juin 2013
-
Bonjour à tous,

Actuellement en stage en comptabilité, j'aurais besoin d'une formule particulière.

Pour faire simple, j'aimerais faire une formule somme.si qui ne conterait que les cellules d'une certaine couleur.

En effet, pour un fichier de suivie des facture, j'aimerais automatiser le calcul du CA pour l'avoir toujours calculé à un instant T. Pour ça, je mettrait les lignes déjà facturées en couleur. Il faudrait que la fonction ne me fasse la somme que des cellules colorées en vert par exemple, et qu'elle laisse les autres tomber.

En régle générale, la somme.si ne me pose pas de problème sur la condition, mais je n'ai rien trouvé pour lui dire que la condition n'est pas du texte, mais une couleur.

Quoi qu'il en soit, je vous remercie de l'aide que vous pourrez m'apporter.

Lord-Hitano.

5 réponses

Messages postés
11910
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 558
Sans passer par du VBA, c'est compliqué.

Technique de contournement que j'utilise tt le temps: tu crées une colonne additionnelle avec des variables binaires dedans (1 = déjà facturé, 0 = pas). Tu mets une MFC sur tes données pour mettre les lignes en couleur quand c'est 1 dans la colonne et tu fais ton somme.si en testant cette nouvelle colonne.
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
58
Date d'inscription
jeudi 6 juin 2013
Statut
Membre
Dernière intervention
19 juin 2013
3
Bonjour,

De mémoire, ce n'est pas possible par excel sans utiliser de VBA.

Cependant, quand tu a une commande facturée, je pense que tu doit entrer une référence facture, et une date de facture sur la ligne (au minimum). si c'est le cas, tu a une colonne qui est remplie uniquement une fois facturée, et qui dont te donne la même information(pour excel) que la couleur. tu peux alors utiliser une formule du type:

=somme.si(A1:A999;"<>";B1:B999)


sur cette colonne (dans mon exemple, la colonne A)
Messages postés
3
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
7 juin 2013

Je vous remercie de ces réponses, j'y avais déjà pensé. Je voulais juste savoir.

Et pour VBA, vous pouvez m'en dire un peu plus ? Je l'ai déjà utilisé en cours, "relativement" vite fait, mais utilisé quand même. Si mes souvenir sont bon, c'est pour créer des formules perso' avec des sortes d'algo c'est ça ?

Si jamais je m'entêtais avec cette méchante "condition couleur", quelle serait la structure de la saisie ?

Je ne m'entêterais pas, puisque la solution du la colonne additionnelle est bien plus simple, mais c'est juste par curiosité.

Merci encore.

Lord-Hitano
Messages postés
11910
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 558
Salut,

Perso j'utilise très peu le VBA. D'habitude je pars d'une macro que j'enregistre et je modifie les paramètres pour que ça fasse ce que je veux.

Tu trouveras une très bonne formation VBA ici.
Messages postés
58
Date d'inscription
jeudi 6 juin 2013
Statut
Membre
Dernière intervention
19 juin 2013
3
pour faire simple en admettant que tu connais le nombre de ligne de ton tableau (ici on va dire 100), et que tu n'a qu'une ligne de "titre" en haut (a partir de la ligne 2 tes commandes donc), ça donnerais un truc du genre:

On admet également que tu veux le résultat de la somme en A101, que ta couleur est en colone B, et que les CA de chaque factures sont en colonne A et qu'on est sur la feuille nommée "tableau"

Sub somme()
dim nbval as integer
dim somme as long
nbval = 100
somme = 0
for i = 2 to nbval
If sheets("tableau").Cells(i, 2).Interior.ColorIndex = code couleur recherché then
somme = somme + sheets("tableau").Cells(i, 1).value
Else
End If
Next I
sheets("tableau").Range("A101").value = somme
end sub


normalement, ça donnerais ça ^^

moi aussi en compta, j'avais fais un truc du genre déjà lors d'un stage, donc ça me dis quelquechose ^^.
Messages postés
3
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
7 juin 2013

Merci à tous pour vos réponse. Je marque comme résolu.

Bonne continuation à vous tous.

Lord-Hitano