somme occurrence mois par mois

  • Initiateur de la discussion Initiateur de la discussion Phil39
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Phil39

XLDnaute Occasionnel
Bonsoir,

J'ai un tableau de 5000 lignes environ servant de "base de données".

En colonne C, il y a à chaque fois une date sous la forme jj/mm/aaaa

je cherche à faire une petite macro me permettant de trouver le nombre d'occurences trouvées pour chaque MOIS de l'année (du 1er Janvier au 31 Décembre, l'année importe peu puisque c'est un fichier annuel).

Autrement dit si j'ai en colonne C de ma feuille 1 :

20/01/2009
21/01/2009
03/02/2009
05/05/2009

je voudrais obtenir dans deux colonnes de ma feuille 4 pour pouvoir ensuite faire un graphique :

Janvier : 2
Février : 1
Mars : 0
Avril : 0
Mai : 1
etc...

J'ai réussis pas mal de trucs grâce à vos conseils et en vous lisant mais là, je vois même pas par où commencer.
 
Re : somme occurrence mois par mois

Bonjour Phil39,

Essaie avec : =SOMMEPROD((MOIS($C$1:$C$1000)=1)*1), pour janvier

Plage à adapter.

Bonne fin d'après-midi.

Jean-Pierre

Merci Jean-Pierre,

Une petite question :

lorsque je tape : =SOMMEPROD((MOIS($A$1:$A$5000)=1)*1)

avec seulement 20 dates dans ma colonne A (dont 13 en Janvier donc "1") sur la sélection des 5000, j'obtiens comme résultat 4993. Pourquoi ?
 
Re : somme occurrence mois par mois

Merci pour toutes vos propositions.

Pour ma part, en partant de l'idée de JeanPierre, j'étais parti sur avec truc du style (je dis bien du style parce qu'évidement, ça ne fonctionne pas) :

Dim derniereligne As Integer
dim janvier as variant

derniereligne = Range("a65535").End(xlUp).Row

janvier = [(SumProduct((Month($A$1:$A$derniereligne) = 1) * 1)]

Cells(1, 2).Value = janvier

Votre expertise s'il vous plait ?

Je dois pas en être loin non ?
 
Dernière édition:
Re : somme occurrence mois par mois

Merci pour toutes vos propositions.

Pour ma part, en partant de l'idée de JeanPierre, j'étais parti sur avec truc du style (je dis bien du style parce qu'évidement, ça ne fonctionne pas) :

Dim derniereligne As Integer
dim janvier as variant

derniereligne = Range("a65535").End(xlUp).Row

janvier = [(SumProduct((Month($A$1:$A$derniereligne) = 1) * 1)]

Cells(1, 2).Value = janvier

Votre expertise s'il vous plait ?

Je dois pas en être loin non ?

Help.
J'ai vraiment besoin de passer par cette solution...
 
Re : somme occurrence mois par mois

bonjour à tous

pourquoi le vba

en reprenant la solution de JCGL sans la plage nommée

Code:
=SOMMEPROD((mois(decaler($A$4;0;0;nbval($A$4:$A$5000)))=1)*1)

autre formule :
Code:
=SOMMEPROD((mois($A$4:$A$5000)=1)*non(estvide($A$4:$A$5000)))
 
Dernière édition:
Re : somme occurrence mois par mois

Comprend pas...

Quand je fais sur un fichier test :

Cells(1, 5).Value = "=SUMPRODUCT((MONTH($A$1:$A$5000)=1)*NOT(ISBLANK($A$1:$A$5000)))"

Ca marche impec (y compris dans mon fichier, ça me retourne bien un chiffre qui n'a rien à voir mais qui est cohérent)

Quand j'adapte pour mes besoins :

Feuil4.Cells(34, 2).Value = "=SUMPRODUCT((MONTH($C$2:$C$5000)=1)*NOT(ISBLANK($C$2:$C$5000)))"

ca me retourne un #valeur!

La seule différence que j'ai identifié, c'est qu'en A:A j'ai des nombres et qu'en C:C j'ai des dates.
 
Re : somme occurrence mois par mois

Bonjour Phil39, Jean-Pierre, phlaurent55, JCGL, wilfried_42 & Monique
Bonjour à toutes et à tous.

Une légère modification de la plage nommée et de la formule, ainsi que la mise en application de la solution proposée par notre reine Monique.

Et pour bien connaitre vos difficultés, veuillez bien nous joindre un exemple de votre fichier (sans données confidentielles) avec l'objectif à atteindre.

Cordialement.

BCharef
 

Pièces jointes

Re : somme occurrence mois par mois

Bonjour à tous et toutes,

Merci de vos propositions.

Je souhaiteriais juste avoir la formule en VBA.
Pourquoi du VBA ?

Simplement parce que j'ai besoin d'avoir une série de résultats lors d'un appel bouton.
Lorsque je rentre mes formules de façon normale dans ma feuille 4, je me suis rendu compte que lorsque j'entrais des données en feuille 1, Excel ralentissait avant de me redonner la main car il recalculait aussi la feuille 4 qui est un peu "lourde".
Etant débutant, j'ai contourné la difficulté en calculant toute ma feuille 4 en VBA qui se met à jour uniquement si je clique sur un bouton.

Et d'autres part, cela me permet d'apprendre le vba grâce à vos conseils puisque j'étudie vos codes et ne les utilise que si je les comprend parfaitement.

Amicalement,

phil
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
494
Réponses
9
Affichages
633
Retour