rendez vous le 30 février !

pphil

XLDnaute Nouveau
Bonjour
Dans une liste SOMMEPROD () je dois faire un sous total des ventes par mois, j(utilise la fonction DATE (année();mois(); jour())
je peux changer de mois en changeant A1 .
Mais voilà, en février les 3 derniers jours me renvoient les trois premiers jours de mars, donc mon sous total est faux, faux aussi les mois à 30 jours.
Comment puis-je éviter cela ?
merci pour tout
 

Pièces jointes

  • test31mois.xls
    13.5 KB · Affichages: 109
  • test31mois.xls
    13.5 KB · Affichages: 119
  • test31mois.xls
    13.5 KB · Affichages: 134

Tibo

XLDnaute Barbatruc
Re : rendez vous le 30 février !

Bonjour,

Il faut tester si la date appartient au même mois :

Une solution :

=SI(MOIS(DATE(ANNEE($A$1);MOIS($A$1);JOUR(A16)))=MOIS($A$1);DATE(ANNEE($A$1);MOIS($A$1);JOUR(A16));"")

Formule établie sur la ligne 16 (à adapter)

On peut prévoir d'apppliquer cette formule que pour les 3 derniers jours (les mois ont tous au moins 28 jours, les variantes sont 29, 30 ou 31 jours)

Bon app

@+
 

Gruick

XLDnaute Accro
Re : rendez vous le 30 février !

Bonjour Pphil & Tibo,
@Tibo, ça nous crée une référence circulaire tout çà.
@Pphil, le titre me rappelle une chanson des années 60 des Parisiennes, ancêtres des Spice Girls.
Je te renvoie le fichier avec mes petites corrections.
A plus,
Gruick
 

Pièces jointes

  • test31mois.xls
    15.5 KB · Affichages: 103
  • test31mois.xls
    15.5 KB · Affichages: 108
  • test31mois.xls
    15.5 KB · Affichages: 116

Catrice

XLDnaute Barbatruc
Re : rendez vous le 30 février !

Bonjour,

Ci-joint un exemple qui permet de gerer les fins de mois et un exemple avec SOMMEPROD
 

Pièces jointes

  • test31mois.xls
    20.5 KB · Affichages: 114
  • test31mois.xls
    20.5 KB · Affichages: 122
  • test31mois.xls
    20.5 KB · Affichages: 132

Tibo

XLDnaute Barbatruc
Re : rendez vous le 30 février !

Salut Gruick,

Je viens de retester ma formule. Je n'ai pas de référence circulaire...

Le principe : tester si le mois de la date "construite" par formule est le même que le mois en A1

Au moins, notre ami phil a ainsi le choix entre plusieurs solutions à son problème.

@+
 

Gruick

XLDnaute Accro
Re : rendez vous le 30 février !

Re Tibo,
J'avais compris que la formule était mise sur A16 qui relie Paris à Dunkerque,
(qu'est-ce que tu racontes Gruick, les vacances sont finies...).
Question dates, je suis à la recherche d'un programme qui me ferait un calendrier musulman, donc lunaire. C'est pas de la tarte, il y a un exemple sur internet, mais l'adaptation est hors de mes connaissances.
A plus,
Gruick
 

Cousinhub

XLDnaute Barbatruc
Re : rendez vous le 30 février !

Bonjour Gruick et les autres.
Pour un calendrier musulman, tu tapes "autres calendriers" dans l'aide d'excel.
- Tu formates ta cellule en B2jj/mm/aaa
- Dans Outils/options, onglet Orthographe, tu sélectionnes comme langue : Arabe
- Rentres le 29/08/2007 par exemple, tu auras : 16/08/1428 (je ne sais pas si la date correspond, mais c'est ce que j'obtiens)

Bon courage
 

Tibo

XLDnaute Barbatruc
Re : rendez vous le 30 février !

Bonsoir,

bhbh, cette fonctionnalité est sans doute présente à partir de la version 2003. pas trouvée chez moi (Excel 2000).

Sinon, par curiosité, j'ai fait une recherche et suis tombé sur le site de Pascal Engelmajer:

Ce lien n'existe plus

où il est proposé un fichier Excel consavré au calendrier musulman

Pas compris grand chose, mais si ça peut aider gruick...

Bonne soirée à tous

@+
 

Gruick

XLDnaute Accro
Re : rendez vous le 30 février !

Bonsoir Bhbh,
@Bhbh, grand merci.
kif kif Tibo excel 2000, le formatage ne veut pas marcher B2jj/mm/aaaa, dommmmmmage !
@Tibo,
C'est justement cet exemple que j'essaye d'adapter, les macros sont un régal, mais voilà, un essai sur l'année 1954 (très bon crû) chevauche trois années musulmanes.
Merci à vous deux, bonne soirée,
Gruick
 

JCGL

XLDnaute Barbatruc
Re : rendez vous le 30 février !

Bonjour à tous,

En B2 du fichier de pphil :

PHP:
=SI(DATE(ANNEE($A$1);MOIS($A$1);JOUR($A2))>FIN.MOIS($A$1;0);"";DATE(ANNEE($A$1);MOIS($A$1);JOUR($A2)))

En plus court par Nom/Définir :

Nom Défini = Form
PHP:
= DATE(ANNEE(Feuil1!$A$1);MOIS(Feuil1!$A$1);JOUR(Feuil1!$A1))

et en B2 :

PHP:
=SI(Form>FIN.MOIS($A$1;0);"";Form)

Il me semble que l'utilisation de FIN.MOIS() nécessite l'activation de la Macro+ "Utilitaire d'Analyse"

Bonne soirée
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 997
Membres
103 424
dernier inscrit
Kyuubi