Classement de données par date

Résolu
geric57 Messages postés 10 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 mars 2006 - 31 janv. 2006 à 16:06
geric57 Messages postés 10 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 mars 2006 - 1 févr. 2006 à 17:41
Bonjour à tous.

J'essaie de créer une macro Excel capable de classer des données par dates. Mes données de départ sont de la forme suivante : se sont des placements financiers pour un montant X, de tel jour à tel jour :

Par exemple :
départ fin Montant
20/01/06 25/01/06 150 000 000 ?
22/01/06 24/01/06 200 000 000 ?
21/01/06 22/01/06 300 000 000 ? et ainsi de suite

je souhaite pr2senter ces données en classant le stock de placement pour chaue jour sur la période considérée. pour l'ex le résultat serai le suivant:

20/01/06 150 000 000 ?
21/01/06 450 000 000 ? (150 000 000 + 300 000 000)
22/01/06 650 000 000 ? (150 000 000 + 300 000 000 + 200 000 000)
23/01/06 350 000 000 ? (150 000 000 + 200 000 000)
24/01/06 350 000 000 ? (150 000 000 + 150 000 000)
25/01/06 150 000 000 ?

Voilou

merci de votre aide

6 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
31 janv. 2006 à 17:14
Salut,

Regarde si ce qui suit peut t'aider

Note: J ai juste fait une boucle de 3 pour ton exemple mais il faudra l'etendre a toute ta plage. Mais c est juste pour le principe.

Teste sous Excel 2000.

Dim i As Integer
Dim Datei As Date
Dim PremiereD As Date
Dim DerniereD As Date
Dim DateLoop As Date
Dim tmpSomme As Long
PremiereD = "31/12/2050"
For i = 1 To 3
'Recupere la date dans la colone Date initiale
Datei = CDate(Range("A" & i))
'Memorise la date la plus ancienne
If Datei < PremiereD Then PremiereD = Datei
'Recupere la date dans la colone Date Finale
Datei = CDate(Range("B" & i))
'Memorise la date la plus recente
If Datei > DerniereD Then DerniereD = Datei
Next
'Verifie la periode
MsgBox PremiereD & "-> " & DerniereD
For DateLoop = PremiereD To DerniereD
'Remise a zero de la sommme
tmpSomme = 0
For i = 1 To 3
If DateLoop >= CDate(Range("A" & i)) And DateLoop <= CDate(Range("B" & i)) Then
tmpSomme = tmpSomme + CLng(Range("C" & i))
End If
Next
MsgBox DateLoop & ": " & tmpSomme


Next
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
1 févr. 2006 à 16:59
Re,

Tu rajoute une variable Dim j as integer

Tu initialise j a 1 AVANT la boucle
j = 1
For DateLoop = PremiereD To DerniereD

Tu remplace la ligne "MsgBox DateLoop & ": " & tmpSomme"
Par les trois lignes suivantes

Range("D" & j).value = DateLoop
Range("E" & j).value = tmpSomme
j = j +1


Et voila les dates sont dans la colonne D et les sommes dans la colonne E (apres tu les met ou tu veux...)

@+
Julien
3
geric57 Messages postés 10 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 mars 2006
1 févr. 2006 à 14:54
Merci Jrivet
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
1 févr. 2006 à 15:04
Re,

Mais de rien tant que ca peut aider ;)
0

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

Posez votre question
geric57 Messages postés 10 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 mars 2006
1 févr. 2006 à 16:49
Juste un dernier petit problème, comment afficher la liste des résultats dans 2 colonnes (une date et une montant) dans la sheet excel et non dans des messages box ???

Merci!!!!!!!!!!!!
0
geric57 Messages postés 10 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 mars 2006
1 févr. 2006 à 17:41
Nikel

merci
0