Somme de cellule avec le même nom

Fermé
jojo - Modifié le 10 nov. 2020 à 22:41
via55 Messages postés 14504 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 décembre 2024 - 12 nov. 2020 à 17:17
Bonjour,

J'ai deux colonnes dans une feuille excel, une avec les couleurs et une avec les nombres
Dans une autre feuille excel, j'aimerais réussir à additionner les nombres dans le cas où le nom de la couleur est la même.
Or j'ai trop de choix de couleurs différentes, la fonction SOMME.SI est donc compliqué à appliquer.
Je penses qu'il faut faire une macro mais je vois pas laquelle faire.

Merci d'avance pour vos réponse




https://forums.commentcamarche.net/forum/affich-21436548-somme-de-cellule-portant-le-meme-nom-sur-exce#18


Configuration: Windows / Chrome 86.0.4240.183

3 réponses

via55 Messages postés 14504 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 décembre 2024 2 738
11 nov. 2020 à 21:36
Re

Au temps pour moi, je n'avais pas compris que tu voulais sommer des cellules colorées, ton lien "somme-de-cellule-portant-le-meme-nom-sur-excel" m’ayant induit en erreur !

En ce cas oui il faudrait une macro

En général quand on conçoit une planning avec des mises en couleurs il est préférable d'entrer dans le planning des codes dans les cellules et de faire colorer par mise en forme conditionnelle en fonction des codes, il est facile ensuite de dénombrer les codes d'un type avec NB.SI ou de les sommer si ces codes sont des nombres avec SOMME;SI
Cela c’est l'option simple que tu devrais peut être envisager

Tu as opté pour l'option compliquée et si tu la maintiens il faut une macro :
si je comprends bien ton planning est coloré selon une légende qui comprend dans une colonne des couleurs et dans l'autre les nombres affectés à chaque couleur
Il faut alors qu'avec la macro :
- tu boucles sur la colonne des couleurs pour relever le code de la couleur et le nombre associé
- à l'intérieur de cette boucle tu fais une autre boucle sur toutes les cellules de la plage à sommer qui relève le code couleur de chaque cellule et qui s'il est identique à celui de la colonne couleur ajoute à une variable x le nombre correspondant
- en fin de cette boucle tu fais afficher où tu veux la somme obtenue, par ex sur 2 colonnes, dans la 1ere la macro colore la cellule avec la couleur et dans la seconde elle inscrit la somme (on incrémente chaque fois de 1 la ligne de copie) puis tu fais remettre la variable x à 0

Cdlmnt
Via


1
jojo_65345 Messages postés 4 Date d'inscription mardi 10 novembre 2020 Statut Membre Dernière intervention 12 novembre 2020
12 nov. 2020 à 11:57
Bonjour,

Quand vous parler de boucle c'est avec If ? ou une autre ?
Merci
0
via55 Messages postés 14504 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 décembre 2024 2 738 > jojo_65345 Messages postés 4 Date d'inscription mardi 10 novembre 2020 Statut Membre Dernière intervention 12 novembre 2020
12 nov. 2020 à 12:15
Re,

Je parle de boucles FOR ... NEXT
la 1ere For n= N° de la 1ere ligne du tableau des couleurs TO n° dernière ligne
la 2nde For Each c in Range(ici la plage du planning à sommer)
à l'intérieur de la 2nde il y aura in IF ..THEN pour vérifier si la couleur est identique et faire alors la somme

Quand tu auras essayé d’établir ta macro si tu as des soucis poste ton fichier sur cjoint.com, copie le lien créé et reviens le coller ici, je regarderai ça

Cdlmt
Via
0
jojo_65345 Messages postés 4 Date d'inscription mardi 10 novembre 2020 Statut Membre Dernière intervention 12 novembre 2020 > via55 Messages postés 14504 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 décembre 2024
12 nov. 2020 à 13:23
Excusez moi de vous reposez une question mais je ne vois pas comment faire avec For Each c in Range, je dois déclaré la variable c mais comment mettre la plage du planning à somme ?
0
via55 Messages postés 14504 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 décembre 2024 2 738 > jojo_65345 Messages postés 4 Date d'inscription mardi 10 novembre 2020 Statut Membre Dernière intervention 12 novembre 2020
12 nov. 2020 à 13:33
Oui c est une variable
Supposons que la plage où se trouvent les cellules colorées à sommer est en B2:Z20 d'une feuille nommée Planning, tu écris alors
For Each c in Sheets("Planning").Range("B2:Z20")
0
jojo_65345 Messages postés 4 Date d'inscription mardi 10 novembre 2020 Statut Membre Dernière intervention 12 novembre 2020 > via55 Messages postés 14504 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 décembre 2024
12 nov. 2020 à 13:38
D'accord merci, et avec if je met
If n est identique
then c est additionné
end if
0
via55 Messages postés 14504 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 décembre 2024 2 738
11 nov. 2020 à 14:01
Bonjour jojo

Pourquoi SOMME.SI serait compliqué à appliquer ?
Tu copies la colonne avec les couleurs de la 1ere feuille et tu la colles en 2eme feuille puis tu fais supprimer les doublons (Données - Supprimer les doublons)
Tu établis une liste déroulante, par exemple en C1 basée sur la colonne des couleurs expurgée
En D1 la formule SOMME.SI avec comme plage somme celle des nombres de la 1ere feuille, comme plage critères celles de couleurs de feuille 1 et comme critère C1

Si par contre tu veux une macro il faut fournir ton fichier en le postant sur cjoint.com, en copiant le lien créé et en revenant le coller ici

Cdlmnt
Via
0
jojo_65345 Messages postés 4 Date d'inscription mardi 10 novembre 2020 Statut Membre Dernière intervention 12 novembre 2020
11 nov. 2020 à 21:10
Bonsoir,

Merci de votre réponse,

Votre méthode est intéressante mais mes couleurs sont dans un planning donc elles changent en fonction des semaines donc je devrais refaire chaque semaine les opérations.
Je cherche donc à éviter cela.

Cordialement,
jojo
0