Somme de bas en haut

Résolu
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 - 6 mars 2024 à 18:42
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 - 10 mars 2024 à 11:25

Bonjour,

En tant que pilote privé, pour pouvoir emmener des passagers je dois avoir effectué au moins 3 atterrissage dans les 3 mois qui précèdent.

Je maintiens un fichier Excel dans lequel je note le nombre d'atterrissage à chaque date, par exemple
Date / Att
25/09/2023 1

08/11/2023 2
11/11/2023 1

06/01/2024 0
27/01/2024 1
Je voudrais savoir jusque quelle date je peux emmener des passagers.
En tant qu'humain je fais la somme du nombre d'att de bas en haut, quand j'atteins 3 j'ai trouvé la date à laquelle il suffit d'ajouter 3 mois, dans l'exemple 08/11/2023.

Je ne parviens pas à faire la même chose automatiquement en Excel, pouvez-vous m'y aider ?

Windows / Chrome 122.0.0.0

12 réponses

ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
6 mars 2024 à 20:53

Bonjour

Une solution via vba (macro)

https://www.cjoint.com/c/NCgt0TDhJaB

Cdlmnt

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
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 ?

0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
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


0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
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.

0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
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


0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
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.

0
brucine Messages postés 14333 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 27 avril 2024 1 817 > Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024
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é.

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8 > brucine Messages postés 14333 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 27 avril 2024
7 mars 2024 à 13:56

Je suis bien d'accord, ce n'est pas mon cas.

0
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
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


0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
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.

0
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74 > Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024
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

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8 > danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024
8 mars 2024 à 09:27

Dommage.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
7 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

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
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.

0
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
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

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
8 mars 2024 à 09:29

Comment puis-je envoyer un fichier dans ce forum ?

0
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
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".

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
8 mars 2024 à 11:38
0
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
8 mars 2024 à 15:35

Bonjour

https://www.cjoint.com/c/NCioIM4VWPB

N'oublies pas d'enregistrer-sous avec le type .xlsm

Cdlmnt

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
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 ?

0
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
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

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
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.

0
bigoudiii Messages postés 223 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 27 avril 2024 77
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)
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
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.

0
bigoudiii Messages postés 223 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 27 avril 2024 77 > Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024
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 !

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8 > bigoudiii Messages postés 223 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 27 avril 2024
8 mars 2024 à 18:43

Je ne connaissais pas la fonction AGREGAT, elle fonctionne très bien aussi, encore merci.

0
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
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

https://www.cjoint.com/c/NCiphBtGs4B

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
Modifié le 9 mars 2024 à 16:29

Je ne trouve pas comment je peux indiquer que ce sujet est résolu.

0
bigoudiii Messages postés 223 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 27 avril 2024 77
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

0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8 > bigoudiii Messages postés 223 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 27 avril 2024
10 mars 2024 à 11:25

En effet, je ne l'avais pas vu car il est sous mon message, terminé et encore merci.

0