Somme de bas en haut
RésoluHerve_be Messages postés 1066 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 23 septembre 2024 - 10 mars 2024 à 11:25
- Somme de bas en haut
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Tiret du bas ✓ - Forum PC portable
- Excel somme ne fonctionne pas ✓ - Forum Excel
- Windows 11 barre des taches en haut - Guide
12 réponses
6 mars 2024 à 20:53
Bonjour
Une solution via vba (macro)
https://www.cjoint.com/c/NCgt0TDhJaB
Cdlmnt
6 mars 2024 à 21:55
Bonsoir à vous deux
Et une solution sans macro, par tableau annexe et formules
https://www.cjoint.com/c/NCgu2IrBCLQ
Cdlmnt
Via
7 mars 2024 à 09:18
Merci pour ta réponse, je préfère cependant la solution VBA car elle ne nécessite pas de colonne supplémentaire.
6 mars 2024 à 23:02
Bonjour à tous,
réponse aussi ici https://forum.excel-pratique.com/excel/somme-de-bas-en-haut-191737
Pour info, poser une question sur plusieurs sites est très mal vu.
On aime pas trop perdre du temps alors que peut-être tu as déjà la réponse ailleurs depuis plusieurs heures.
Tâche d'en tenir compte si tu ne veux pas être zappé sur tes prochaines demandes.
eric
7 mars 2024 à 09:04
Il m'arrive régulièrement de poser une question sur un site et de ne pas avoir de réponse du tout.
Par ailleurs poser la même question sur plusieurs forums peut donner des réponses différentes ce qui permet de choisir celle qui me semble la meilleure.
C'est la première fois qu'on me le reproche.
7 mars 2024 à 12:04
Bonjour,
Pour illustrer la question, nous avions un spécialiste que nous n'avons pas vu depuis quelques mois, personne ne pleure, qui bidouillait un fichier Excel écrit en dépit du bon sens depuis 10 ans, qui allait sur tel forum qui lui suggérait une modification 1 et un autre une modification 2 et qui revenait sur l'un en ayant appliqué la modification de l'autre sans crier gare: ingérable.
Nous avons aussi régulièrement, c'est un aspect subsidiaire, des gens qui posent la même question sur plusieurs forums; il y a ceux qui ne répondent jamais nulle part à aucune solution qui leur a été proposée, et aussi ceux qui auront trouvé sur le site 1 sans revenir le dire et comment sur le site 2.
Il faut bien admettre que pour celles des solutions pouvant demander un peu de travail, le répondant puisse en être contrarié.
7 mars 2024 à 13:56
Je suis bien d'accord, ce n'est pas mon cas.
7 mars 2024 à 18:04
Bonjour à tous,
Avec Excel 365 :
=LET(dat;SEQUENCE(MOIS.DECALER(A6;3)-A2;;A2);ASSEMB.H(dat;BYROW(dat;LAMBDA(SOMME(FILTRE($B$2:$B$6;($A$2:$A$6>=MOIS.DECALER(x;-3))*($A$2:$A$6<=x);0))))))
Daniel
7 mars 2024 à 18:27
Même si je n'ai rien compris ce serait séduisant mais j'ai un message d'erreur "cette fonction est incorrecte".
Chez moi la date est dans la colonne A, le nombre d'att dans la colonne F et les lignes vont de 4 à 91, voici ma fonction :
=LET(dat;SEQUENCE(MOIS.DECALER(A91;3)-A4;;A4);ASSEMB.H(dat;BYROW(dat;LAMBDA(SOMME(FILTRE($F$4:$F$91;($A$4:$A$91>=MOIS.DECALER(x;-3))*($A$4:$A$91<=x);0))))))
Je ne trouve pas les fonctions LET, SEQUENCE, ASSEMB, LAMBDA ni FILTRE dans Excel; je n'ai pas la version 365 mais Microsoft Office Professionnel Plus 2019.
7 mars 2024 à 19:05
Ta version d'Excel doit être antérieure à Excel 365. Tu ne peux donc pas te servir de la formule.
Daniel
8 mars 2024 à 09:27
Dommage.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question7 mars 2024 à 18:22
Bonjour
Comment enregistrer ta macro dans mon fichier Excel ?
Chez toi : Alt-F11 pour accéder à l'éditeur vba, Insertion/Module/Puis y copier l'intégralité du code (qui est dans le Module 1 de mon fichier)
Pour l'enregistrer, je suppose que tu as un excel > 2007. Fichier/Enregistrer sous/ Dans type, choisir .xlsm .... prenant en compte les macros
Cdlmnt
Modifié le 7 mars 2024 à 18:44
Merci,
J'ai la version 2019, la macro VBA est bien enregistrée.
Maintenant j'ai une erreur #VALEUR!
Bizarrement j'ai une référence circulaire dans la cellule qui contient =date3att(listedat;listeatt)
Pour essayer de lever une cause possible j'ai remplacé la définition automatique des noms par les définitions manuelles :
listeatt = TakeOff!$F$4:$F$91
listedat=TakeOff!$A$4:$A$91
mais ça ne change rien.
7 mars 2024 à 19:37
Dans mon fichier, si la formule est =date3att(A2:A16;B2:B16), ça fonctionne bien. Peux tu envoyer un bout de ton fichier (la feuille TakeOff en particulier)?
Cdlmnt
8 mars 2024 à 09:29
Comment puis-je envoyer un fichier dans ce forum ?
8 mars 2024 à 11:02
1) Tu vas dans http://cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".
8 mars 2024 à 11:38
Merci, voici : https://www.cjoint.com/c/NCikLyM5HD7
8 mars 2024 à 15:35
Bonjour
https://www.cjoint.com/c/NCioIM4VWPB
N'oublies pas d'enregistrer-sous avec le type .xlsm
Cdlmnt
8 mars 2024 à 15:53
Merci, effectivement dans ta feuille ça fonctionne.
Cependant je ne peux pas la prendre telle qu'elle car ma feuille d'origine est beaucoup plus vaste que cet extrait; si je recopie les formules et VBA de ta feuille vers la mienne ça ne fonctionne toujours pas.
Pourrais-tu me dire ce que tu as modifié à ma feuille ?
8 mars 2024 à 15:58
as tu renommé les plages ?
listedat=DECALER(TakeOff!$A$3;0;0;NB(TakeOff!$A:$A)-1;1)
listeatt=DECALER(listedat;0;5) > attention 5 est le décalage de colonne / listadat
8 mars 2024 à 16:05
Les plages automatiques ne sont pas nécessaires car je n'ajoute jamais une ligne à la fin : dans tous mes fichiers j'insère une copie de la dernière ligne au-dessus d'elle puis je modifie la nouvelle dernière.
D'autre part pour exclure un risque d'erreur de plage la cellule où doit apparaître le résultat contient =date3att(A4:A91;F4:F91)
J'obtiens une référence circulaire sur cette cellule.
8 mars 2024 à 16:07
Hello,
Un essai par formule matricielle en F94, à valider par Ctrl+Maj+Entrée, elle se met alors entre accolades {} :
=MOIS.DECALER(MAX(SI(SOMME.SI.ENS(F3:F91;A3:A91;">="&A3:A91;A3:A91;"<="&A3:A91+91)>=3;A3:A91;""));3)
8 mars 2024 à 16:15
Ah oui, ça fonctionne très bien.
Je n'ai pas de difficulté en Excel avec les formules mais je n'ai jamais bien compris le mode matriciel.
Merci beaucoup, c'est exactement ce que je cherchais.
Merci aussi à ccm81 pour le temps passé, la solution de bigoudiii est plus simple pour moi.
8 mars 2024 à 16:34
Re,
On peut faire un poil plus court avec :
=MOIS.DECALER(MAX((SOMME.SI.ENS(F3:F91;A3:A91;">="&A3:A91;A3:A91;"<="&A3:A91+91)>=3)*A3:A91);3)
toujours en validation matricielle,
et on peut s'affranchir de cette validation matricielle en remplaçant MAX par AGREGAT(14 ... avec :
=MOIS.DECALER(AGREGAT(14;6;((SOMME.SI.ENS(F3:F91;A3:A91;">="&A3:A91;A3:A91;"<="&A3:A91+91)>=3)*A3:A91);1);3)
À tester bien sûr !
8 mars 2024 à 18:43
Je ne connaissais pas la fonction AGREGAT, elle fonctionne très bien aussi, encore merci.
8 mars 2024 à 16:08
D'autre part pour exclure un risque d'erreur de plage la cellule où doit apparaître le résultat contient =date3att(A4:A91;F4:F91)
Pas ici
Modifié le 9 mars 2024 à 16:29
Je ne trouve pas comment je peux indiquer que ce sujet est résolu.
10 mars 2024 à 11:07
Hello,
Je crois qu'il faut aller sur ton premier post du fil, et tu dois voir un bouton Résolu
10 mars 2024 à 11:25
En effet, je ne l'avais pas vu car il est sous mon message, terminé et encore merci.
Modifié le 7 mars 2024 à 09:59
Merci beaucoup, ceci me convient parfaitement.
Je n'ai cependant pas l'habitude d'utiliser VBA, dans ton fichier la macro fonctionne comme souhaité mais je ne parviens pas à la faire fonctionner dans le mien, j'obtiens #NOM? dans la cellule qui contient l'appel à la macro.
Comment enregistrer ta macro dans mon fichier Excel ?