Somme Si + Période
Fermé
Mr Ludo
Messages postés
8
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
7 août 2009
-
6 août 2009 à 17:06
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 - 7 août 2009 à 13:28
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 - 7 août 2009 à 13:28
A voir également:
- Somme Si + Période
- Somme si couleur - Guide
- Calcul période d'essai cdi simulateur excel ✓ - Forum Excel
- Somme si ou ✓ - Forum Excel
- Somme excel - Guide
- Somme si ens date ✓ - Forum Excel
16 réponses
tompols
Messages postés
1219
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
460
6 août 2009 à 17:53
6 août 2009 à 17:53
Bonjour,
2 propositions (pour une plage de 839 lignes et un critere de date janvier2009) :
Tom
2 propositions (pour une plage de 839 lignes et un critere de date janvier2009) :
=SOMMEPROD((MOIS(A1:A839)=1)*(ANNEE(A1:A839)=2009)*(B1:B839))=> formule "classique"
=SOMME((MOIS(A1:A839)=1)*(ANNEE(A1:A839)=2009)*(B1:B839))=> formule matricielle à valider par CTRL + SHIFT + ENTREE
Tom
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
6 août 2009 à 17:15
6 août 2009 à 17:15
Je pense que tu devrai créer une macro... ça sera plus pratique que les formules excel
Mr Ludo
Messages postés
8
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
7 août 2009
6 août 2009 à 17:27
6 août 2009 à 17:27
Et c'est là que ça coince. Je ne sais pas faire ... pour l'instant. Mais j'ai l'impression que je vais devoir m'y mettre ! On m'avait déjà donné ce conseil mais j'ai persévéré dans les formules.
Merci quand même
Merci quand même
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
6 août 2009 à 17:28
6 août 2009 à 17:28
et tu as trouver avec les formules??
Mr Ludo
Messages postés
8
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
7 août 2009
6 août 2009 à 17:47
6 août 2009 à 17:47
Aucun problème. Ca m'intéresse beaucoup justement ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mr Ludo
Messages postés
8
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
7 août 2009
6 août 2009 à 17:31
6 août 2009 à 17:31
Non. J'en ai essayé plusieurs. Certaines mélangées à d'autres. J'ai bien secoué et le résultats n'était jamais au rdv.
La formule qui me paraissait la plus cohérente était SUMIF(A1:A150;DATE(2009;1;1);B1:B150) mais forcément ça ne prend en compte qu'une seule journée.
La formule qui me paraissait la plus cohérente était SUMIF(A1:A150;DATE(2009;1;1);B1:B150) mais forcément ça ne prend en compte qu'une seule journée.
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
6 août 2009 à 17:42
6 août 2009 à 17:42
si tu n'est pas trop réfractaire au macro on peut t'aider à la créer
ça te fera une première approche
ça te fera une première approche
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
6 août 2009 à 18:13
6 août 2009 à 18:13
bon ok c parti
on va dire que tu va affecté ta futur macro à un bouton...
pour créer un bouton...
Affichage> barre d'outil > formulaire
Clic sur bouton sur la barre d'outil qui est apparu
et dessine ton bouton sur la page qui t'interesse
une fois que tu as dessiner ton bouton tu as une fenetre qui apparait "affecter une macro"
sinon clic droit sur ton bouton et "affecter une macro"
ensuite clic sur nouvelle et tu as les pages de code qui apparaissent
une macro s'est créée et le curseur clignote...
(Sub est le terme de début de macro, ensuite tu as un nom de macro que tu pourra modifier si tu veux (mais pour l'instant laisse le nom automatique) ensuite les parenthèse () et toute macro doit se finir par end sub)
avant sub colle ça
dim DateF as Date
dim Som as Single
entre la ligne sub et end sub colle ce qui suit
for i=X to Y (remplace le X par le numéro de la première ligne avec une date de ta colonne date et le Y par le numéro de ta dernière)
DateF = Sheets("NomDeTaFeuille").Cells(i,NuméroDeTaColonneDeDate) (A=1, B=2...)
if Month(Date)=1 then
Som = Som + Sheets("NomDeTaFeuille").Cells(i,NuméroDeTaColonneQuantité)
end if
next i
Sheets("NomDeTaFeuille").Cells(NumLigne,NumColonne).value = som
(choisi une cellule dans laquelle afficher la somme et inscrit le numéro de sa ligne et le num de sa colonne )
Tout ce qui est en gras est à modifier par toi
essaye ça comme ça et demain on voit pour les explication et les modif...
cette macro fais la somme des quantité pour le mois de janvier...
on perfectionnera ensuite pour le faire pour chaque mois
on va dire que tu va affecté ta futur macro à un bouton...
pour créer un bouton...
Affichage> barre d'outil > formulaire
Clic sur bouton sur la barre d'outil qui est apparu
et dessine ton bouton sur la page qui t'interesse
une fois que tu as dessiner ton bouton tu as une fenetre qui apparait "affecter une macro"
sinon clic droit sur ton bouton et "affecter une macro"
ensuite clic sur nouvelle et tu as les pages de code qui apparaissent
une macro s'est créée et le curseur clignote...
(Sub est le terme de début de macro, ensuite tu as un nom de macro que tu pourra modifier si tu veux (mais pour l'instant laisse le nom automatique) ensuite les parenthèse () et toute macro doit se finir par end sub)
avant sub colle ça
dim DateF as Date
dim Som as Single
entre la ligne sub et end sub colle ce qui suit
for i=X to Y (remplace le X par le numéro de la première ligne avec une date de ta colonne date et le Y par le numéro de ta dernière)
DateF = Sheets("NomDeTaFeuille").Cells(i,NuméroDeTaColonneDeDate) (A=1, B=2...)
if Month(Date)=1 then
Som = Som + Sheets("NomDeTaFeuille").Cells(i,NuméroDeTaColonneQuantité)
end if
next i
Sheets("NomDeTaFeuille").Cells(NumLigne,NumColonne).value = som
(choisi une cellule dans laquelle afficher la somme et inscrit le numéro de sa ligne et le num de sa colonne )
Tout ce qui est en gras est à modifier par toi
essaye ça comme ça et demain on voit pour les explication et les modif...
cette macro fais la somme des quantité pour le mois de janvier...
on perfectionnera ensuite pour le faire pour chaque mois
Mr Ludo
Messages postés
8
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
7 août 2009
7 août 2009 à 09:46
7 août 2009 à 09:46
Tout d'abord merci beaucoup pour l'aide.
J'ai fait un petit tableau "test" sur lequel je m'essaie aux macros.
En colonne D les dates commencent au 01/08/09 en cellule D3.
Les quantités associées se trouvent en colonne F et commencent en cellule F3.
Le nom de ma feuille est "bilan".
Dim DateF As Date
Dim Som As Single
Sub Button1_Click()
For i = 3 To 500
DateF = Sheets("bilan").Cells(i, 4) -> Quand je clique sur le bouton, "Can't execute in break mode" apparait et la ligne est surlignée en jaune.
If Month(DateF) = 8 Then
Som = Som + Sheets("bilan").Cells(F, i)
End If
Next i
Sheets("bilan").Cells(9, 8).Value = Som
End Sub
J'ai fait un petit tableau "test" sur lequel je m'essaie aux macros.
En colonne D les dates commencent au 01/08/09 en cellule D3.
Les quantités associées se trouvent en colonne F et commencent en cellule F3.
Le nom de ma feuille est "bilan".
Dim DateF As Date
Dim Som As Single
Sub Button1_Click()
For i = 3 To 500
DateF = Sheets("bilan").Cells(i, 4) -> Quand je clique sur le bouton, "Can't execute in break mode" apparait et la ligne est surlignée en jaune.
If Month(DateF) = 8 Then
Som = Som + Sheets("bilan").Cells(F, i)
End If
Next i
Sheets("bilan").Cells(9, 8).Value = Som
End Sub
tompols
Messages postés
1219
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
460
7 août 2009 à 09:53
7 août 2009 à 09:53
Bonjour,
Je persiste, utilser une macro ds ce cas n'est pas approprié : une formule, ou un TCD peuvent largement suffire (et seront plus performants que du code VBA).
Maintenant si effectivement tu souhaites en profiter pour t'intéresser aux macros, no pb.... ;)
Je persiste, utilser une macro ds ce cas n'est pas approprié : une formule, ou un TCD peuvent largement suffire (et seront plus performants que du code VBA).
Maintenant si effectivement tu souhaites en profiter pour t'intéresser aux macros, no pb.... ;)
Mr Ludo
Messages postés
8
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
7 août 2009
7 août 2009 à 10:07
7 août 2009 à 10:07
@ Tompols
Je découvre bel et bien les macros mais je ne ferme pas la porte à toutes autres solutions. J'en apprends encore plus !
J'ai rentré la première formule comme cela:
=SOMMEPROD((MONTH(D3:D841)=8)*(YEAR(D3:D841)=2009)*(F3:F839))
La seconde de cette manière (et j'ai bien validé par ctrl+shift+entré)
=SOMME((MONTH(D3:D841)=8)*(YEAR(D3:D841)=2009)*(F3:F841))
Voilà la réponse: #NAME?
Où c'est que ça coince ?
En attendant je vais tenter le TCD !
Je découvre bel et bien les macros mais je ne ferme pas la porte à toutes autres solutions. J'en apprends encore plus !
J'ai rentré la première formule comme cela:
=SOMMEPROD((MONTH(D3:D841)=8)*(YEAR(D3:D841)=2009)*(F3:F839))
La seconde de cette manière (et j'ai bien validé par ctrl+shift+entré)
=SOMME((MONTH(D3:D841)=8)*(YEAR(D3:D841)=2009)*(F3:F841))
Voilà la réponse: #NAME?
Où c'est que ça coince ?
En attendant je vais tenter le TCD !
tompols
Messages postés
1219
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
460
7 août 2009 à 10:12
7 août 2009 à 10:12
Re,
Pemiere chose, tu as l'air d'etre en version anglaise, ds ce cas relmplace SOMME par SUM et SOMMEPROD par SUMPRODUCT...si tu as la possibilité de mettre un fichier exemple sur http://cijoint.fr/ ça nous aiderait je pense.....
Pemiere chose, tu as l'air d'etre en version anglaise, ds ce cas relmplace SOMME par SUM et SOMMEPROD par SUMPRODUCT...si tu as la possibilité de mettre un fichier exemple sur http://cijoint.fr/ ça nous aiderait je pense.....
Mr Ludo
Messages postés
8
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
7 août 2009
7 août 2009 à 10:47
7 août 2009 à 10:47
Bien vu le coup de la traduction ! Ca marche parfaitement.
Par contre, je souhaiterais malgrè tout comprendre le fonctionnement d'une macro et d'un TCD.
J'ai fait un tableau test.
http://www.cijoint.fr/cjlink.php?file=cj200908/cijUuivSqj.xlsx
Par contre, je souhaiterais malgrè tout comprendre le fonctionnement d'une macro et d'un TCD.
J'ai fait un tableau test.
http://www.cijoint.fr/cjlink.php?file=cj200908/cijUuivSqj.xlsx
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
7 août 2009 à 11:35
7 août 2009 à 11:35
Désolé je ne peu pas ouvrir ton fichier il est enregistré en format xml et non en xls
En plus je pense que tu utilise excel2007 je ne possède que la version 2003
si tu peu enregistrer sous ce format je pourrai jetter un coup d'oeil et t'expliquer le fonctionnement de la macro
En plus je pense que tu utilise excel2007 je ne possède que la version 2003
si tu peu enregistrer sous ce format je pourrai jetter un coup d'oeil et t'expliquer le fonctionnement de la macro
Mr Ludo
Messages postés
8
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
7 août 2009
7 août 2009 à 11:43
7 août 2009 à 11:43
Et voilà !
http://www.cijoint.fr/cjlink.php?file=cj200908/cijWRbmqgM.xls
http://www.cijoint.fr/cjlink.php?file=cj200908/cijWRbmqgM.xls
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
7 août 2009 à 11:54
7 août 2009 à 11:54
Bon, j'ai lancer la macro après quelque modif... ça marche essaye ça on perfectionnera après avec quelques explications
Dim DateF As Date
Dim Som As Single
Sub Bouton1_QuandClic()
For i = 3 To 500
DateF = Sheets("bilan").Cells(i, 2) '-> Quand je clique sur le bouton, "Can't execute in break mode" apparait et la ligne est surlignée en jaune.
If Month(DateF) = 8 Then
Som = Som + Sheets("bilan").Cells(i, 3)
End If
Next i
Sheets("bilan").Cells(6, 7).Value = Som
End Sub
Dim DateF As Date
Dim Som As Single
Sub Bouton1_QuandClic()
For i = 3 To 500
DateF = Sheets("bilan").Cells(i, 2) '-> Quand je clique sur le bouton, "Can't execute in break mode" apparait et la ligne est surlignée en jaune.
If Month(DateF) = 8 Then
Som = Som + Sheets("bilan").Cells(i, 3)
End If
Next i
Sheets("bilan").Cells(6, 7).Value = Som
End Sub
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
7 août 2009 à 13:28
7 août 2009 à 13:28
Et si tu lance ce code
avec en F1 "Quantité Janvier", F2 "Quantité Fevrier"..., F12 "Quantité Décembre"
Tu as en une fois toute les sommes
Dim DateF As Date
Dim Som As Single
Sub Bouton1_QuandClic()
For j = 1 To 12
Som = 0
For i = 3 To 500
DateF = Sheets("bilan").Cells(i, 2)
If Month(DateF) = j Then
Som = Som + Sheets("bilan").Cells(i, 3)
End If
Next i
Sheets("bilan").Cells(j, 7).Value = Som
Next j
End Sub
avec en F1 "Quantité Janvier", F2 "Quantité Fevrier"..., F12 "Quantité Décembre"
Tu as en une fois toute les sommes
Dim DateF As Date
Dim Som As Single
Sub Bouton1_QuandClic()
For j = 1 To 12
Som = 0
For i = 3 To 500
DateF = Sheets("bilan").Cells(i, 2)
If Month(DateF) = j Then
Som = Som + Sheets("bilan").Cells(i, 3)
End If
Next i
Sheets("bilan").Cells(j, 7).Value = Som
Next j
End Sub