Formule "Somme couleurs" pour additionner les valeurs de plusieurs cellule

Bonjour à tous, je rencontre un problème suite à la création d'un tableau et l'utilisation d'une formule "Sommecouleur". En recherchant j'ai trouvé le script et tout fonctionnait bien mais depuis que j'ai mis toutes les données dans le tableaux, les résultats ne s'affiche pas tout le temps et le message "Loading" apparait mais aucun affiche de résultats se fait.

Est-ce que c'est le fait d'avoir beaucoup de lignes et beaucoup de couleurs? (Environ 1700 lignes et une quinzaine de couleurs à chercher)

Avez-vous des solutions à m'apporter?

J'ai commencé par vider le cache, les cookies, mais ça ne change rien.

Merci d'avance.

Fabrice

Bonjour,

peux-tu donner le code utilisé ?

je viens de trouver et adapter une solution assez intéressante par ailleurs, je suis en train de voir sur une feuille type ce que cela donne

Bonjour,

J'utilise la fonction "SommeCouleur".

Est-ce que celle-ci est différente de la votre?

Il faut que je rajoute votre script?

J'utilise la fonction "SommeCouleur".

je ne connais pas cette fonction ! ce n'est pas une fonction native de google, as-tu installé un add-on ?

dans ma proposition il s'agit en effet d'un script

Voici la formule:

/**
* Permet de sommer le contenu des cellules de même couleur.
* Pour réinitialiser les fonctions changer une valeur dans une cellule de la plage de calcul
* @constructor
* @param {$A$1:$E$10} plage - plage à calculer.
* @param {E1} couleur ref - cellule dont le background est la référence de couleur.
* @return La somme des cellules de même couleur.
* @customfunction
*/

function SommeCouleurs(plage,couleur) {
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var formule = activeRange.getFormula();

//permet de trouver dans la formule la plage et de supprimer les autres caractères
var laplage = formule.match(/\((.*)\;/).pop();

var range = activeSheet.getRange(laplage);
var bg = range.getBackgrounds();
var values = range.getValues();

//permet de trouver dans la formule la cellule de référence couleur et de supprimer les autres caractères
var lacouleur = formule.match(/\;(.*)\)/).pop();
var colorCell = activeSheet.getRange(lacouleur);
var color = colorCell.getBackground();
//var color ="#ff0000";
var total = 0;
//nécessite la fonction isTypeNumber pour ne pas utiliser les cellules alphanumériques
for(var i=0;i<bg.length;i++)
for(var j=0;j<bg[0].length;j++)
if( bg[i][j] == color && isTypeNumber(values[i][j]) )
total=total+(values[i][j]*1);
return total;

};
function isTypeNumber(arg) {
return typeof arg == 'number';
}

bonjour,

Sommecouleur est # de Sommecouleurs est # de SommeCouleurs

Attention à la casse bien mettre le nom de la fonction enregistrée dans le script

Vous me conseiller de mettre votre formule?

Non regardez ce que vous avez mis comme nom de fonction

sinon, dans la proposition que j'ai faite ici https://forum.excel-pratique.com/sheets/lier-plusieurs-cases-de-la-meme-couleur-pour-les-aditionner-...,

  1. tu peux sommer dans des feuilles différentes
  2. et le choix de la couleur est automatique (c'est celle de la cellule où se fait la somme)

Dans la formule j'ai bien mis "SommeCouleurs"

par contre elle est dans le code.gs, est-ce que c'est bien comme ça?

image

il y a quoi dans la cellule de résultat ??

la couleur de référence est elle identique à la couleur devant être sommée.

Le résultat est bon, il calcul bien mais c'est très très lent et des fois ça ne mets rien pendant plusieurs minutes

image

@fab-de-Beaucouzé (pas loin de chez moi ...)

j'aimerais bien voir un bout de fichier ou rien que la formule utilisée avec les paramètre de zone et couleur !


edit : vu ta réponse ... dans ce cas, il faut faire un script différent en calculant toutes les couleurs en même temps et toutes les colonnes en même temps !

Voilà ma base où je viens prendre la couleur de référence:

image

La formule:

image

La cellule:

image

edit : vu ta réponse ... dans ce cas, il faut faire un script différent en calculant toutes les couleurs en même temps et toutes les colonnes en même temps !

Il faudrait changer quoi à mon script pour toi?

je veux bien travailler à ceci

edit : vu ta réponse ... dans ce cas, il faut faire un script différent en calculant toutes les couleurs en même temps et toutes les colonnes en même temps !

mais il faudrait juste un fichier réduit pour développer une solution plus rapide, beaucoup plu rapide !

surtout j'aimerais les formules sur quelques case à droite et en dessous car ta formule ne fait pas apparaître de $ (sauf pour la couleur)

je ne sais pas ce qu'a prévu Gilbert le cas échéant

Merci, je veux bien de ton aide.

Par contre je ne sais comment te réaliser et te transmettre un fichier réduit

Aucun souci Mike

Tu peux faire

Le temps de traitement important c’est normal un tableur n’est pas conçu pour faire ce genre de calcul

Par contre je ne sais comment te réaliser et te transmettre un fichier réduit

pour transmettre ... https://www.sheets-pratique.com/fr/cours/partage

je suis en train de préparer quelque chose de générique, à voir si cela s'adaptera

Rechercher des sujets similaires à "formule somme couleurs additionner valeurs"