Somme par groupe de compte
Résolu
max850
Messages postés
304
Date d'inscription
Statut
Membre
Dernière intervention
-
max850 Messages postés 304 Date d'inscription Statut Membre Dernière intervention -
max850 Messages postés 304 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Dans la colonne N de ma feuille"groupe" j'ai une série de comptes 50 51 60 61 65.
je voudrais à partir de cette colonne rechercher dans la colonne B de ma feuille"divers"
tous les comptes commençant par 50 51 60 61 et 65, faire le somme par ligne et inscrire automatiquement le total de chaque ligne de compte dans la colonne O de ma feuille"groupe" en face du compte correspondant
les deux feuilles sont dans le même classeur.
Je peux le faire au coup par coup mais je voudrais automatiser cette procédure en la lançant par un bouton de commande
je vous remercie de votre aide
Dans la colonne N de ma feuille"groupe" j'ai une série de comptes 50 51 60 61 65.
je voudrais à partir de cette colonne rechercher dans la colonne B de ma feuille"divers"
tous les comptes commençant par 50 51 60 61 et 65, faire le somme par ligne et inscrire automatiquement le total de chaque ligne de compte dans la colonne O de ma feuille"groupe" en face du compte correspondant
les deux feuilles sont dans le même classeur.
Je peux le faire au coup par coup mais je voudrais automatiser cette procédure en la lançant par un bouton de commande
je vous remercie de votre aide
A voir également:
- Somme par groupe de compte
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Installer windows 10 sans compte microsoft - Guide
10 réponses
Bonjour
à, adapter
en N à partir de N2, la liste des entêtes de comptes
en B la liste des comptes
en C la liste des montants correspondants à chaque ligne
tout dépend de vos codes complet, s(ils sont en nulmréique ou en texte dans la colonne B
essayez soit avec:
=SOMME.SI(B:B;O2&"*";C:C)
soit avec celle ci en matricielle qui "encaissera" les codes textes ou standards et éliminera les cellules vides en B:
=SOMMEPROD((SI(B2:B100<>"";GAUCHE(B2:B100;2))*1=N2*1)*(C2:C100))
cette formule est matricielle et doit être entrée avec la touche enter en maintenant les touches ctrl et shift enfoncées 'elle s'affiche automatiquement entre accolades dans la barre de formule)
pour ce dernier code, il est préférable de limiter les champs B et C aux nombres de lignes utiles (ex B2:B100 et C2:C100)
(sinon le temps de calcul risque d'être un peu long!)
crdlmnt
La qualité de la réponse dépend surtout de la clarté de la question, merci!
à, adapter
en N à partir de N2, la liste des entêtes de comptes
en B la liste des comptes
en C la liste des montants correspondants à chaque ligne
tout dépend de vos codes complet, s(ils sont en nulmréique ou en texte dans la colonne B
essayez soit avec:
=SOMME.SI(B:B;O2&"*";C:C)
soit avec celle ci en matricielle qui "encaissera" les codes textes ou standards et éliminera les cellules vides en B:
=SOMMEPROD((SI(B2:B100<>"";GAUCHE(B2:B100;2))*1=N2*1)*(C2:C100))
cette formule est matricielle et doit être entrée avec la touche enter en maintenant les touches ctrl et shift enfoncées 'elle s'affiche automatiquement entre accolades dans la barre de formule)
pour ce dernier code, il est préférable de limiter les champs B et C aux nombres de lignes utiles (ex B2:B100 et C2:C100)
(sinon le temps de calcul risque d'être un peu long!)
crdlmnt
La qualité de la réponse dépend surtout de la clarté de la question, merci!
Bonsoir Vaucluse
et merci pour tes réponses
j'ai utilisé la formule matricielle que j'ai incluse dans ma procédure vba ce qui fait qu'elle s'exécute automatiquement et ça fonctionne très bien mais je suis obligé de répéter 5 fois ma formule pour chacun des comptes dans cette procédure
j'ai aussi essayé en sélectionnant les comptes via une combobox la aussi ca fonctionne mais je dois relancer 5 fois ma selection
je pensais à une boucle imbriquée for next mais là je ne sais pas comment m'y prendre ...
et merci pour tes réponses
j'ai utilisé la formule matricielle que j'ai incluse dans ma procédure vba ce qui fait qu'elle s'exécute automatiquement et ça fonctionne très bien mais je suis obligé de répéter 5 fois ma formule pour chacun des comptes dans cette procédure
j'ai aussi essayé en sélectionnant les comptes via une combobox la aussi ca fonctionne mais je dois relancer 5 fois ma selection
je pensais à une boucle imbriquée for next mais là je ne sais pas comment m'y prendre ...
Bonjour max, Vaucluse
Il y a plusieurs solutions par VBA mais tout dépend du nombre de lignes utilisées
le mieux serait de joindre ton classeur
Dans l’attente
Il y a plusieurs solutions par VBA mais tout dépend du nombre de lignes utilisées
le mieux serait de joindre ton classeur
Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message
Dans l’attente
Bonjour Michel, Bonjour Vaucluse
merci Vaucluse pour ton implication à mon souci
Michel voici le lien avec mon fichier original
https://mon-partage.fr/f/FwUdkOiD/
je rentre mes infos dans le journal et à la validation la somme des groupes de comptes s'affichent automatiquement dans le journal
mais dans le code je ne voudrais pas avoir à répéter
Range("N10").FormulaLocal = "=SOMMEPROD((GAUCHE(D6:D" & dern & ";2)=""60"")*H6:H" & dern & ")"
Range("O10").FormulaLocal = "=SOMMEPROD((GAUCHE(D6:D" & dern & ";2)=""60"")*J6:J" & dern & ")"
Range("N10") = (Range("N10") + Range("O10"))
Range("O10").Clear
autant de fois qu'il y a de groupe de comptes
dans un deuxième temps
je pensais effectuer cette opération séparément et ponctuellement
avec un bouton de commande inclus dans userform1 mais j'en demande sans doute un peu trop ....
merci michel pour ce que tu pourras faire
merci Vaucluse pour ton implication à mon souci
Michel voici le lien avec mon fichier original
https://mon-partage.fr/f/FwUdkOiD/
je rentre mes infos dans le journal et à la validation la somme des groupes de comptes s'affichent automatiquement dans le journal
mais dans le code je ne voudrais pas avoir à répéter
Range("N10").FormulaLocal = "=SOMMEPROD((GAUCHE(D6:D" & dern & ";2)=""60"")*H6:H" & dern & ")"
Range("O10").FormulaLocal = "=SOMMEPROD((GAUCHE(D6:D" & dern & ";2)=""60"")*J6:J" & dern & ")"
Range("N10") = (Range("N10") + Range("O10"))
Range("O10").Clear
autant de fois qu'il y a de groupe de comptes
dans un deuxième temps
je pensais effectuer cette opération séparément et ponctuellement
avec un bouton de commande inclus dans userform1 mais j'en demande sans doute un peu trop ....
merci michel pour ce que tu pourras faire
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu parles au départ d'une feuille "groupe" et d'une feuille "divers"
ton envoi ne correspond pas à cette assertion...
ton envoi ne correspond pas à cette assertion...
oui michel effectivement
c'est ce que je voulais faire initialement avant d'abandonner et revenir à mon code de départ
j'ai été pour le moins très maladroit sur ce coup
et te présente mes excuses
c'est ce que je voulais faire initialement avant d'abandonner et revenir à mon code de départ
j'ai été pour le moins très maladroit sur ce coup
et te présente mes excuses
bonjour Michel
la feuille divers était une copie de la feuille journalbord sans les colonnes abcefgmn
et la feuille groupe avait en colonne a le descriptif de chaque groupe et en b la liste des groupes de comptes correspondant aux descriptifs
la somme des comptes devant apparaître en face des groupes correspondant
aux deux premiers chiffres des comptes
par exemple :
A B C
achats denrées fourniture - 60 - somme de tous les comptes débutant par 60
Merci
la feuille divers était une copie de la feuille journalbord sans les colonnes abcefgmn
et la feuille groupe avait en colonne a le descriptif de chaque groupe et en b la liste des groupes de comptes correspondant aux descriptifs
la somme des comptes devant apparaître en face des groupes correspondant
aux deux premiers chiffres des comptes
par exemple :
A B C
achats denrées fourniture - 60 - somme de tous les comptes débutant par 60
Merci
A force, tu me décourages...
DANS TON CLASSEUR REEL QUELLES SONT LES FEUILLES QUE TU AS APPELE "GROUPE" ET "DIVERS" ?
DANS TON CLASSEUR REEL QUELLES SONT LES FEUILLES QUE TU AS APPELE "GROUPE" ET "DIVERS" ?
Michel en premier lieu j'avais créé un programme sans calculer les sommes par groupe et sans les colonnes M et N
Ensuite j'ai modifié ce programme pour ajouter une feuille "groupe" qui contenait les groupes de comptes avec leurs descriptifs et copier la feuille "journalbord" sous le nom de "divers".
J'ai abandonné ce projet pour revenir à mon premier programme et le modifier en ajoutant les colonnes M et N et calculer les sommes des groupes de compte
avec sommeprod
les feuilles "groupe" et"divers" n'existent pas dans le ficher que tu as
j'aimerais dans un premier temps ne pas avoir à répéter le code sommeprod autant de fois qu'il y a de groupe de code
et dans un deuxième temps pouvoir calculer les sommes ponctuellement avec un bouton de commande ce que je voulais faire dans le programme abandonné.
Pourrais tu simplement m'indiquer comment ne pas avoir à répéter mon code sommeprod
pour le deuxième temps j'y reviendrai plus tard en essayant d'être plus clair ayant suffisamment abusé de ta patience
Ensuite j'ai modifié ce programme pour ajouter une feuille "groupe" qui contenait les groupes de comptes avec leurs descriptifs et copier la feuille "journalbord" sous le nom de "divers".
J'ai abandonné ce projet pour revenir à mon premier programme et le modifier en ajoutant les colonnes M et N et calculer les sommes des groupes de compte
avec sommeprod
les feuilles "groupe" et"divers" n'existent pas dans le ficher que tu as
j'aimerais dans un premier temps ne pas avoir à répéter le code sommeprod autant de fois qu'il y a de groupe de code
et dans un deuxième temps pouvoir calculer les sommes ponctuellement avec un bouton de commande ce que je voulais faire dans le programme abandonné.
Pourrais tu simplement m'indiquer comment ne pas avoir à répéter mon code sommeprod
pour le deuxième temps j'y reviendrai plus tard en essayant d'être plus clair ayant suffisamment abusé de ta patience