Somme sous condition en macro [Résolu]

Messages postés
115
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
19 février 2019
- - Dernière réponse :  acive - 26 mars 2013 à 16:33
Bonjour,

Quelqu'un pourrait-il m'aider svp?
J'ai un tableau quelconque avec la colonne J contenat des montants en euros.
Par le biais d'autres macro je colorie chaque ligne en fonction de ce qui est dans la colonne H (4 choix donc 4 couleurs).
J'aimerais tout simplement dans une macro, réaliser la somme des montants de la colonne J par couleur.

Merci d'avance pour votre aide
Afficher la suite 

Votre réponse

20/24 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
264
3
Merci
Bonjour,
J'aimerais tout simplement dans une macro, réaliser la somme des montants de la colonne J par couleur.

laisse deviner une lourdeur de conception.
Réfléchissons : Ces 4 couleurs ne sont pas attribuées spontanément, mais en fonction d'une condition, non ?*
Faire ensuite un total de valeurs sur la base de ces couleurs est un "travail" supplémentaire (source de lenteurs ajoutées) assez étrange.
Il sera bien plus rapide de faire ce total directement en fonction de la condition et non de la couleur attribuée en application de la condition !
Intéresse-toi donc à worksheetfunction.SUMIF (dans ton aide VBA), faite pour cela.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Dire « Merci » 3

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

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
3
3
Merci
Oui dans l'aide en ligne de VBA :
Liste des fonctions de feuille de calcul disponibles dans Visual Basic
(En tout cas dans ma version)

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

Dire « Merci » 3

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

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de MarcPL
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
264
3
Merci
Toutes les fonctions de Excel utilisables depuis VBA sont des membres de l'objet WorkSheetFunction.
Il suffit donc d'ouvrir la rubrique WorkSheetFunction et d'y sélectionner la sous-rubrique Membres de l'objet WorksheetFunction. Toutes les fonctions utilisables y sont répertoriées comme "méthodes".


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Dire « Merci » 3

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

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
3
0
Merci
Comment aider sans voir le code ?

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Commenter la réponse de MarcPL
Messages postés
115
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
19 février 2019
0
Merci
Je n'en ai aucun code,
Les autres macros sont indépendantes.
Commenter la réponse de Lameche15
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
3
0
Merci
Bon faut s'y mettre alors, car ici il n'y a pas de livraison clef en main !

Sinon, en testant les cellules de la même façon qu'elles sont coloriées,
une somme par couleur peut donc être calculée ...

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Commenter la réponse de MarcPL
Messages postés
115
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
19 février 2019
0
Merci
C'est ce que je voulais savoir! merci pour l'info.

Je vais m'y mettre alors
Commenter la réponse de Lameche15
Messages postés
115
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
19 février 2019
0
Merci
Puisque ca à l'air de vous interesser, je détaille un peu plus.
J'ai fait une macro qui me permet dans une base de données de selectionner 1 ou plusieurs ligne et de les "MARQUER".
La ou les lignes sélectionnées sont coloriées en fonction du "type d'opération" dans la colonne H (4 choix = 4 couleur).
Dans la colonne Q "FAIT" j'inscris en meme temps que je colore la mention "oui".
Et c'est la que je pensais réaliser avec une fonction comme somme si la somme par couleur mais en y pensant en vous ecrivant, je peux peut etre réaliser mon test entre la colonne H et la colonne Q puisque si Q contient "oui" cela veut dire que ma ligne est colorée. Donc pas besoin de plus de précision pour réaliser ma somme.
Je regarde ça!

Merci pour la fonction SUMIF.
D'ailleurs existe t-il un document qui recense tout les noms de fonction utilisable en vba?
Commenter la réponse de Lameche15
Messages postés
115
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
19 février 2019
0
Merci
Merci beaucoup pour l'info!
Commenter la réponse de Lameche15
Messages postés
115
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
19 février 2019
0
Merci
Merci beaucoup pour l'info!!
Commenter la réponse de Lameche15
Messages postés
115
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
19 février 2019
0
Merci
Voilà comme j'ai écris ma macro:

Sub calculer()
Dim SommeDI, SommeOA, SommeOS, SommeMO As Double
Sheets("TABLEAU GENERAL").Activate
'******** 1er choix
SommeDI = WorksheetFunction.SumIf("H:H", "Dégâts Intempéries", "J:J")
'******** 2ème choix
SommeOA = WorksheetFunction.SumIf("H:H", "Ouvrages d'art", "J:J")
'******** 3ème choix
SommeOS = WorksheetFunction.SumIf("H:H", "Opérations Spécifiques", "J:J")
'******** 4ème choix
SommeMO = WorksheetFunction.SumIf("H:H", "Murs et Ouvrages", "J:J")
End Sub

Erreur renvoyée: incompatibilité de type

Je n'ai pas accès à l'aide en ligne
Commenter la réponse de Lameche15
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
264
0
Merci
Je n'ai pas accès à l'aide en ligne

Hé bien : installe-là donc sans plus attendre !
On ne peut travailler sans elle ! (te viendrait-il l'idée de conduire une voiture sans son volant ? Non, hein ...)
Tu y aurais par exemple lu que le premier paramètre doit être un objet Range, ce que n'est pas "H:H" (qui est une chaîne de caractères) .

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
3
0
Merci
Astuce : formule de calcul saisie manuellement dans une cellule de la feuille.
Une fois qu'elle fonctionne, cellule contenant la formule sélectionnée,
dans l'environnement VBA, dans la fenêtre Exécution taper :
? activecell.formula et valider.
En dessous tu auras la formule en version anglaise exploitable donc en VBA ...

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Commenter la réponse de MarcPL
Messages postés
115
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
19 février 2019
0
Merci
Impossible d'installer quoique ce soit sur mon poste de travail je ne suis pas administrateur (société)
j'ai donc modifié comme suit:

Sub calculer()
Dim SommeDI, SommeOA, SommeOS, SommeMO As Double
Sheets("TABLEAU GENERAL").Activate
'******** 1er choix
SommeDI = WorksheetFunction.SumIf(Range("H:H"), "Dégâts Intempéries", Range("J:J"))
MsgBox "" & SommeDI
'******** 2ème choix
SommeOA = WorksheetFunction.SumIf(Range("H:H"), "Ouvrages d'art", Range("J:J"))
'******** 3ème choix
SommeOS = WorksheetFunction.SumIf(Range("H:H"), "Opérations Spécifiques", Range("J:J"))
'******** 4ème choix
SommeMO = WorksheetFunction.SumIf(Range("H:H"), "Murs et Ouvrages", Range("J:J"))
End Sub

Maintenant je souhaite ajouter ma 2ème condition sur Range("Q:Q") et il me dit nombre d'arguments incorrect
Commenter la réponse de Lameche15
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
264
0
Merci
1) Désolé, mais lis donc ce que j'ai écrit dans ma signature.
2)
Impossible d'installer quoique ce soit sur mon poste de travail je ne suis pas administrateur (société)

Exige
donc cette installation, que ton employeur ne saurait légalement te refuser si ton emploi prévoit des tâches de développement. Il va de soi que, dans le cas contraire, il a probablement raison de ne pas te permettre de développer sur les machines dont IL a la responsabilité.
C'est clair.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
115
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
19 février 2019
0
Merci
Il a PROBABLEMENT raison. Que ferais tu alors à ma place, tu te priverais d'un outil formidable et continuerais à travailler "à la main"?
J'essaie de trouver des solutions pour améliorer mon rendement et ceux de mes collègues. Je travaille pour la fonction Publique et ce n'est pas une légende l'inertie y est immense. J'ai créé une application super pratique adaptée aux besoins de mon agence. Les autres agences n'ayant pas d'outil nt demandé sous mon impulsion qu'on développer mon outil à tout le monde. Cela n'a pas plus au service informatique qui à dépensé plusieurs milliers d'euros pour acheter un logiciel hyper sophistiqué et donc plus du tout adapté aux besoins des agences mais c'est eux qui ont raison... Alors je me vois mal leur demander de m'installer des logiciels de développement. ALors je continue avec mon brave excel et mon livre VBA pour les nuls et ce forum génial.

Pour info j'ai trouvé la solution: une boucle FOR pour balayer la colonne Q et une boucle if pour tester la valeur.

Merci pour votre aide
Commenter la réponse de Lameche15
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
264
0
Merci
Il a PROBABLEMENT raison. Que ferais tu alors à ma place, tu te priverais d'un outil formidable et continuerais à travailler "à la main"?

Ce que je sais, c'est que je ne ferai rien sans son aval, son autorisation et ... ses outils, alors, hein !
Ne serait-ce que pour ne pas me risquer de me retrouver devant une commission de discipline (pour ton info : j'y ai participé plus d'une fois, en représentation de mes collègues. Un cas comme celui-ci n'appelait aucune défense de ma part. Alors : prends tes risques, si tu veux, mais n'en fais pas une "morale" autre que la tienne seule... ).
Voilà voilà. Cela s'arrête là en ce qui me concerne.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
264
0
Merci
Et je te rappelle l'existence du Comité Technique Paritaire (je crois que son appellation est devenue aujourd'hui simplement "Comité Technique").
Si tu penses réellement tout ce que tu as dit de l'outil "sophistiqué" et que les "verrues" que tu veux y ajouter sont de nature à améliorer les choses, c'est là, qu'il te faut attaquer, avancer tes arguments, etc ... en vue d'obtenir les modifications et/ou ajouts que tu estimes utiles. Et pas comme tu le fais ("en douce" ou "dans le dos").
Tu peux donc demander à y être présent en qualité d'expert (c'est le terme consacré).
Mais tout cela te regarde.
Ce qui regarde ce forum, par contre, c'est que tu veuilles y voir un substitut de l'aide non installée, y compris pour des choses simples et qui y sont parfaitement exposées.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
115
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
19 février 2019
0
Merci
Alors je m'excuse d'utiliser le forum contre nature!
Commenter la réponse de Lameche15
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
264
0
Merci
Non. Ne t'excuse pas, puisque tu n'as pas commis de faute à l'égard de ce forum.
Cela ne change toutefois rien au fondement : installation de l'aide indispensable.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.