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

Résolu/Fermé
Hitano Messages postés 3 Date d'inscription vendredi 7 juin 2013 Statut Membre Dernière intervention 7 juin 2013 - 7 juin 2013 à 10:57
Hitano Messages postés 3 Date d'inscription vendredi 7 juin 2013 Statut Membre Dernière intervention 7 juin 2013 - 7 juin 2013 à 11:33
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.
A voir également:

5 réponses

Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
7 juin 2013 à 11:07
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
NeoTsu Messages postés 58 Date d'inscription jeudi 6 juin 2013 Statut Membre Dernière intervention 19 juin 2013 3
7 juin 2013 à 11:05
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)
1
Hitano Messages postés 3 Date d'inscription vendredi 7 juin 2013 Statut Membre Dernière intervention 7 juin 2013
7 juin 2013 à 11:14
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
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
7 juin 2013 à 11:29
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.
0
NeoTsu Messages postés 58 Date d'inscription jeudi 6 juin 2013 Statut Membre Dernière intervention 19 juin 2013 3
Modifié par NeoTsu le 7/06/2013 à 11:33
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 ^^.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Hitano Messages postés 3 Date d'inscription vendredi 7 juin 2013 Statut Membre Dernière intervention 7 juin 2013
7 juin 2013 à 11:33
Merci à tous pour vos réponse. Je marque comme résolu.

Bonne continuation à vous tous.

Lord-Hitano
0