OVH Cloud OVH Cloud

intervalle entre des mois

6 réponses
Avatar
Maud
bonjour à tous,
mon code consiste à faire un test sur des données et si ce test est bon,
compter alors le nombre de données le validant. Le problème vient du test. Ce
que je souhaite faire c'est donc: si l'intervalle entre le mois de la donnée
et ce mois-ci est = 12 alors tu me comptes m1=m1+1,
si c'est 11, alors m2=m2+1, etc, (en faite le but est de faire ensuite un
graph sur 12 mois glissants). j'ai donc utilisé cela:
If d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) Then
m1 = m1 + 1
ElseIf d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) Then
m2 = m2 + 1
etc...
mais en fait, comme je fais juste la soustraction sur le mois, une fois que
je change d'année, j'ai des mois négatifs, et toujours la même année et donc
ma date n'a plus de sens! Mais je ne trouve pas le moyen d'afficher alors
l'année précédente avec le mois souhaité autrement qu'en faisant à chaque
fois une test sur le mois actuel, ce qui devient lourd!
pouvez vous m'aider à trouver une solution??
en espèrant que j'ai été assez clair, je vous remercie d'avance!

6 réponses

Avatar
Daniel
Bonjour.
Essaie (non testé) :

If DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) > 0 Then
If d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) Then
m1 = m1 + 1
ElseIf d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) +
12 Then
m1 = m1 + 1
End If
ElseIf DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) > 0 Then
If d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) Then
m2 = m2 + 1
ElseIf d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) +
12 Then
m2 = m2 + 1
End If
Etc...

Cordialement.
Daniel
"Maud" a écrit dans le message de news:

bonjour à tous,
mon code consiste à faire un test sur des données et si ce test est bon,
compter alors le nombre de données le validant. Le problème vient du test.
Ce
que je souhaite faire c'est donc: si l'intervalle entre le mois de la
donnée
et ce mois-ci est = 12 alors tu me comptes m1=m1+1,
si c'est 11, alors m2=m2+1, etc, (en faite le but est de faire ensuite un
graph sur 12 mois glissants). j'ai donc utilisé cela:
If d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) Then
m1 = m1 + 1
ElseIf d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) Then
m2 = m2 + 1
etc...
mais en fait, comme je fais juste la soustraction sur le mois, une fois
que
je change d'année, j'ai des mois négatifs, et toujours la même année et
donc
ma date n'a plus de sens! Mais je ne trouve pas le moyen d'afficher alors
l'année précédente avec le mois souhaité autrement qu'en faisant à chaque
fois une test sur le mois actuel, ce qui devient lourd!
pouvez vous m'aider à trouver une solution??
en espèrant que j'ai été assez clair, je vous remercie d'avance!



Avatar
JB
Bonjour,


m = 12
d = DateSerial(2006, m, 1) ' 1/1/2006
m = m + 1
d = DateSerial(2006, m, 1) ' 1/1/2007

Cordialement JB


bonjour à tous,
mon code consiste à faire un test sur des données et si ce test est b on,
compter alors le nombre de données le validant. Le problème vient du test. Ce
que je souhaite faire c'est donc: si l'intervalle entre le mois de la don née
et ce mois-ci est = 12 alors tu me comptes m1=m1+1,
si c'est 11, alors m2=m2+1, etc, (en faite le but est de faire ensuite un
graph sur 12 mois glissants). j'ai donc utilisé cela:
If d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) Then
m1 = m1 + 1
ElseIf d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) T hen
m2 = m2 + 1
etc...
mais en fait, comme je fais juste la soustraction sur le mois, une fois q ue
je change d'année, j'ai des mois négatifs, et toujours la même ann ée et donc
ma date n'a plus de sens! Mais je ne trouve pas le moyen d'afficher alors
l'année précédente avec le mois souhaité autrement qu'en faisant à chaque
fois une test sur le mois actuel, ce qui devient lourd!
pouvez vous m'aider à trouver une solution??
en espèrant que j'ai été assez clair, je vous remercie d'avance!


Avatar
Modeste
Bonsour® Maud avec ferveur ;o))) vous nous disiez :

mon code consiste à faire un test sur des données et si ce test est bon,
compter alors le nombre de données le validant. Le problème vient du test. Ce
que je souhaite faire c'est donc: si l'intervalle entre le mois de la donnée
et ce mois-ci est = 12 alors tu me comptes m1=m1+1,
si c'est 11, alors m2=m2+1, etc, (en faite le but est de faire ensuite un
graph sur 12 mois glissants). j'ai donc utilisé cela:
If d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) Then
m1 = m1 + 1
ElseIf d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) Then
m2 = m2 + 1
etc...


peut etre en s'inspirant de ceci :
:
If DateDonnée > DateSerial(Year(Now()), Month(Now) + 1, 0) Then
Select Case Month(DateDonnée)
Case 1
m1 = m1 + 1
Case 2
m2 = m2 + 1
'-----
'case pour chaque mois
'-----
Case 12
m12 = m12 + 1
Case Else
End Select
Else
Application.StatusBar = "date hors plage"
End If

il manque toutefois d'information concernant la décision pour la partie de mois
en cours
et subséquement du reliquat fin de mois an-1
en clair :
ne prendre que des mois complets écoulés
ou bien
le debut de mois actuel doit-il etre traité ???

la plage sera déterminée par le If avant le select


--
--
@+
;o)))

Avatar
JB
On peut obtenir des graphiques glissant sans VBa:

http://cjoint.com/?hynzZvZ00M

Mois Ca
janvier 06 1000
février 06 1200
mars 06 1250
avril 06 1100
mai 06 800
juin 06 920

1- Créer le graphe
2- Nommer le champ Mois et le Ca avec Insertion/Nom/Définir

ÞCALER($A$1;NBVAL($A:$A)-3;0;3)
ÞCALER(!$B$1;NBVAL($A:$A)-3;0;3)

3-Sélectionner le graphe:
Dans la barre de formule, remplacer les champs par Mois et CA
=SERIE(GrapheDynGlissant!$B$1;GrapheDynGlissant!Mois;GrapheDynGlissant!ca ;1)

JB


bonjour à tous,
mon code consiste à faire un test sur des données et si ce test est b on,
compter alors le nombre de données le validant. Le problème vient du test. Ce
que je souhaite faire c'est donc: si l'intervalle entre le mois de la don née
et ce mois-ci est = 12 alors tu me comptes m1=m1+1,
si c'est 11, alors m2=m2+1, etc, (en faite le but est de faire ensuite un
graph sur 12 mois glissants). j'ai donc utilisé cela:
If d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) Then
m1 = m1 + 1
ElseIf d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) T hen
m2 = m2 + 1
etc...
mais en fait, comme je fais juste la soustraction sur le mois, une fois q ue
je change d'année, j'ai des mois négatifs, et toujours la même ann ée et donc
ma date n'a plus de sens! Mais je ne trouve pas le moyen d'afficher alors
l'année précédente avec le mois souhaité autrement qu'en faisant à chaque
fois une test sur le mois actuel, ce qui devient lourd!
pouvez vous m'aider à trouver une solution??
en espèrant que j'ai été assez clair, je vous remercie d'avance!


Avatar
Maud
bonjour et merci d'avoir répondu!
j'ai testé votre code mais ca ne fonctionne pas, en fait le premier if étant
toujours vérifié, ca ne tourne pas comme prévu. Mais je suis du coup en ce
moment en train de voir si je ne pourrais pas modifier l'ordre et garder
l'idée, mais ce n'est pas très évident. En plus je vais en avoir besoin
souvent, l'idée étant juste finalement : comment retirer des mois en
changeant aussi l'année, sachant que le mois et l'année ne sont pas prédéfini
mais dépendent des données! pfiou!
je continue la quête...
merci encore

Bonjour.
Essaie (non testé) :

If DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) > 0 Then
If d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) Then
m1 = m1 + 1
ElseIf d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) +
12 Then
m1 = m1 + 1
End If
ElseIf DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) > 0 Then
If d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) Then
m2 = m2 + 1
ElseIf d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) +
12 Then
m2 = m2 + 1
End If
Etc...

Cordialement.
Daniel
"Maud" a écrit dans le message de news:

bonjour à tous,
mon code consiste à faire un test sur des données et si ce test est bon,
compter alors le nombre de données le validant. Le problème vient du test.
Ce
que je souhaite faire c'est donc: si l'intervalle entre le mois de la
donnée
et ce mois-ci est = 12 alors tu me comptes m1=m1+1,
si c'est 11, alors m2=m2+1, etc, (en faite le but est de faire ensuite un
graph sur 12 mois glissants). j'ai donc utilisé cela:
If d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) Then
m1 = m1 + 1
ElseIf d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) Then
m2 = m2 + 1
etc...
mais en fait, comme je fais juste la soustraction sur le mois, une fois
que
je change d'année, j'ai des mois négatifs, et toujours la même année et
donc
ma date n'a plus de sens! Mais je ne trouve pas le moyen d'afficher alors
l'année précédente avec le mois souhaité autrement qu'en faisant à chaque
fois une test sur le mois actuel, ce qui devient lourd!
pouvez vous m'aider à trouver une solution??
en espèrant que j'ai été assez clair, je vous remercie d'avance!








Avatar
Maud
bonjour et merci de votre réponse,
je ne peux pas utiliser cette méthode car en fait les tests sur mes données
sont également glissant et premettent de définir la source de mon graph. ce
n'est donc pas seulement le graph qui glisse sur 12 mois, mais ces 12 mois
définissent les données à y mettre! (c'est pas évident tout ca! )
merci de la réponse!


On peut obtenir des graphiques glissant sans VBa:

http://cjoint.com/?hynzZvZ00M

Mois Ca
janvier 06 1000
février 06 1200
mars 06 1250
avril 06 1100
mai 06 800
juin 06 920

1- Créer le graphe
2- Nommer le champ Mois et le Ca avec Insertion/Nom/Définir

ÞCALER($A$1;NBVAL($A:$A)-3;0;3)
ÞCALER(!$B$1;NBVAL($A:$A)-3;0;3)

3-Sélectionner le graphe:
Dans la barre de formule, remplacer les champs par Mois et CA
=SERIE(GrapheDynGlissant!$B$1;GrapheDynGlissant!Mois;GrapheDynGlissant!ca;1)

JB


bonjour à tous,
mon code consiste à faire un test sur des données et si ce test est bon,
compter alors le nombre de données le validant. Le problème vient du test. Ce
que je souhaite faire c'est donc: si l'intervalle entre le mois de la donnée
et ce mois-ci est = 12 alors tu me comptes m1=m1+1,
si c'est 11, alors m2=m2+1, etc, (en faite le but est de faire ensuite un
graph sur 12 mois glissants). j'ai donc utilisé cela:
If d1 = DatePart("m", Now) - 12 & "/" & DatePart("Yyyy", Now) Then
m1 = m1 + 1
ElseIf d1 = DatePart("m", Now) - 11 & "/" & DatePart("Yyyy", Now) Then
m2 = m2 + 1
etc...
mais en fait, comme je fais juste la soustraction sur le mois, une fois que
je change d'année, j'ai des mois négatifs, et toujours la même année et donc
ma date n'a plus de sens! Mais je ne trouve pas le moyen d'afficher alors
l'année précédente avec le mois souhaité autrement qu'en faisant à chaque
fois une test sur le mois actuel, ce qui devient lourd!
pouvez vous m'aider à trouver une solution??
en espèrant que j'ai été assez clair, je vous remercie d'avance!