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

Somme suivant des couleurs

  • Initiateur de la discussion Initiateur de la discussion sonic730
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sonic730

Guest
Bojour à tous,
j'ai creer un tableau sous excel avec les cases remplies de différentes couleurs.

Je souhaiterais faire la somme des cases de chaque couleur remplie dans chaque colonne, et mettre les résultats au dessous ou au dessus ?
J'espère avoir été clair...

Comment puis-je faire
 
Re : Somme suivant des couleurs

Merci tout le monde pour votre aide ; tout fonctionne à merveille (et exactement comme je voulais), et avec tous les fichiers.
Vous êtes des dieux.
C'est vraiment sympa d'être sur un forum qui est vraiment actif.
merci encore à JCGL, Paritec, pierrejean, roger2327, et tous les autres, pour votre aide.

Avant de partir je me permet une autre question sur les couleurs du fichier que je vous ai envoyé.

Est-il possible dans le tableau, au lieu d'avoir toute la ligne de A à O de colorier, seulement les cases avec un montant afin d'avoir quelque chose de moins chargé au niveau visuel ?

Je vous mets un morceaux de code qui entre autres me colorie ces lignes :

'On enregistre les données
ActiveSheet.Cells(NumLigneVide, 1) = (txtaction.Text)
ActiveSheet.Cells(NumLigneVide, 4) = UCase(txtdatederèglement.Text)
ActiveSheet.Cells(NumLigneVide, 6) = UCase(txtmembresclients.Text)
ActiveSheet.Cells(NumLigneVide, 8) = (txtcomptecopro.Text)
ActiveSheet.Cells(NumLigneVide, 10) = UCase(txtdébitcomptemembres.Text)
ActiveSheet.Cells(NumLigneVide, 14) = UCase(txtcréditcomptebanque.Text)
ActiveSheet.Cells(NumLigneVide, 15) = UCase(txtchauffagechargescommunes.Text)
'on affecte une couleur
ActiveSheet.Range("A" & NumLigneVide & ":O" & NumLigneVide).Interior.ColorIndex = 3

Je précise que pour remplir le tableaux journal je passe par un formulaire qui me remplis automatiquement les bonnes cases.
Si vous avez besoins de plus d'infos ou de tout le code, il y a pas de problème..
Faites le moi savoir
 
Re : Somme suivant des couleurs

Re

Difficile de tout suivre !!

Voici un fichier d'apres le premier posté
Avec en plus une macro qui permet d'avoir pour les colonnes A a O les sommes par couleur (pas de couleur si somme nulle) en feuille JOURNAL
La macro est sollicitée dès le changement d'une cellule dans la zone utile
Note: Les couleurs sont celles d'origine et elles sont ecrite 'en dur' dans la macro
(Si besoin on peut aller les recuperer dans des cellules temoin)
En Feuil1 j'ai conservé mes formules (je ne peux pas gerer les couleurs puisque je les utilise pour la comparaison)
 

Pièces jointes

Re : Somme suivant des couleurs

Merci pierrejean.
En fait j'ai encore du mal m'exprimer (mais ton idée est bien aussi...)

En fait je pense que c'est beaucoup plus simple que ca, ce qu'il me fallait.
Je voulais des cases vides, mais pas au niveau des sommes de colonnes par couleurs, que vous avez réussi à faire, mais dans le tableau lorsque je rempli les lignes du journal.

Je m'explique :
Dans le fichier fourni on voit que A13 A14 A15 B16 C16 D16 etc... sont vide, et j'aurais aimé qu'elles n'aient pas de couleur lorsque je rempli le tableau par le biais du formulaire.
Je n'ai réussi à colorier que la ligne compète de A à O, mais pas seulement les cases ayant un montant.

J'ai joint plus haut le morceaux du code qui colorie la ligne. Je pense que c'est la que se situe la modif à faire.

Je pense avoir été plus clair, mais c'est vrai que je vous tire à tous mon chapeau, car arriver à de telles résultat avec des explications aussi peu clair ca relève du genie.

merci
 
Re : Somme suivant des couleurs

Re

teste le remplacement de
Code:
ActiveSheet.Range("A" & NumLigneVide & ":O" & NumLigneVide).Interior.ColorIndex = 3

par

Code:
For n = 1 To 15
If ActiveSheet.Cells(NumLigneVide, n) <> 0 Then
 ActiveSheet.Cells(NumLigneVide, n).Interior.ColorIndex = 3
Else
 ActiveSheet.Cells(NumLigneVide, n).Interior.ColorIndex = xlNone
End If
Next
 
Re : Somme suivant des couleurs

Bonjour à tous,

c'est la première fois que je vous écris. J'espère être au bon endroit et pas sur un vieux forum désaffecté.

En son temps, j'ai récupéré cette macro sur ce site mais je constate qu'elle ne fonctionne pas si les nombres à additionner ont des décimales ou si les valeurs sont des heures obtenues par une formule de somme et affichée sous la forme 13h30 par exemple.

Function SommeSiCouleur(Plage As Range, NumeroDeCouleur%) As Long
Application.Volatile True
Dim wCell As Range
For Each wCell In Plage
If wCell.Interior.ColorIndex = NumeroDeCouleur Then
SommeSiCouleur = SommeSiCouleur + wCell.Value
End If
Next
End Function

Quelqu'un peut-il me dire comment faire pour remédier à ce problème? D'avance un tout grand merci.
Je reviendrai voir sur cette page régulièrement ou vous pouvez me répondre directement à brolajeter[A]gmail.com
 
Re : Somme suivant des couleurs

Voilà le fichier de base simplifié avec mes problèmes. Le total des heures que je voudrais avoir en A73 et A74 ne fonctionne pas avec le principe de formule que celui utilisé en B73 ou E73.

Pour le total en B74 sur le principe de B73 mais bien sûr avec le bon code couleur, il m'indique 8 et non 7,5.
Est-ce plus clair comme cela?
En tous les cas merci de votre réponse rapide.
 

Pièces jointes

Re : Somme suivant des couleurs

Merci à tous.
J'ai modifié
Function SommeSiCouleur(Plage As Range, NumeroDeCouleur%) As Long
en
Function SommeSiCouleur(Plage As Range, NumeroDeCouleur%) As Double
et tout marche.
C'est un plaisir de vous demander qqc. En espérant pouvoir vous rendre la pareille quand je serai plus avancé dans mes connaissances.
 
Re : Somme suivant des couleurs

Bonjour à tous,

Peux-tu essayer en passant en Double

VB:
Function SumColor(Plage As Range, NumColor%) As Double
Application.Volatile True
Dim wCell As Range
For Each wCell In Plage
If wCell.Interior.ColorIndex = NumColor Then
SumColor = SumColor + wCell.Value
End If
Next
End Function

A+ à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
220
Réponses
4
Affichages
253
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…