OVH Cloud OVH Cloud

numero de semaine

23 réponses
Avatar
yan
bonjour a tous
comment récupérer en Visual basic le numéro de semaine d'une cellule
contenant une date?
Pour le jour je fait x = Day (activecell) pour mois x = month (activecell)
Mais pour le numéro de semaine on fait comment? Si toutefois c'est possible
de façon simple
x = week(activecell) n'est apparemment pas du code

Merci à vous
cordialemnt
Yan

10 réponses

1 2 3
Avatar
Péhemme
Bonjour Yan,

Pour compléter ce qui t'a été proposé, une fonction que je retrouve par
hasard :

Public Function IsoWeekNum(d1 As Date) As Integer
' Provided by Daniel Maher.
Dim d2 As Long
d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
IsoWeekNum = Int((d1 - d2 + Weekday(d2) + 5) / 7)
End Function

Bonne suite
Michel

"yan" <xyx.orange.fr> a écrit dans le message de
news:4e8d1ca2$0$18812$
Bonjour
Merci à toutes et tous pour ces explications
A+


"yan" <xyx.orange.fr> a écrit dans le message de
news:4e8c7e3a$0$30758$
bonjour a tous
comment récupérer en Visual basic le numéro de semaine d'une cellule
contenant une date?
Pour le jour je fait x = Day (activecell) pour mois x = month
(activecell)
Mais pour le numéro de semaine on fait comment? Si toutefois c'est
possible de façon simple
x = week(activecell) n'est apparemment pas du code

Merci à vous
cordialemnt
Yan



Avatar
Maude Este
"Péhemme" a écrit
Pour compléter ce qui t'a été proposé, une fonction que je retrouve par
hasard :

;o)))
par hasard ???
http://excelabo.net/trucs/numero_semaine_norme_europeenne
Avatar
Péhemme
Sans doute Gilbert,
mais c'est à l'occasion d'autres élucubrations que j'ai retrouvé *par
hasard* un petit fichier dont la macro était celle que j'ai postée.
Je l'avais peut-être obtenue à l'époque sur le site de Misange, mais comme
je cite les auteurs (quand je les ai), l'honneur est sauf.
Bien amicalement
Michel

"Maude Este" a écrit dans le message de
news:j6khf4$huf$


"Péhemme" a écrit
Pour compléter ce qui t'a été proposé, une fonction que je retrouve par
hasard :

;o)))
par hasard ???
http://excelabo.net/trucs/numero_semaine_norme_europeenne
Avatar
Maude Este
"Péhemme"
;o)))
Excelabo ? ils n'y sont pas venus par hasard ..!
;o)))
Avatar
Gloops
Bonjour,

Tu es sûr que c'est sous Excel 2007 qu'il faut tester ?

La tronche de la formule encouragerait à d'abord tester avec
l'utilitaire d'analyse activé, non ? Comme d'ailleurs Excelabo le
signale au passage ...

Ils n'ont pas tort de préciser la définition de la première semaine
(semaine qui inclut le 1er janvier), car d'autres définitions sont
possibles, comme par exemple semaine du premier Lundi de l'année.
____________________________________
MichD a écrit, le 05/10/2011 21:13 :
| = No.Semaine(A1;2) Norme européenne

Cette fonction n'existe pas sous Excel 2003, c'est sûr!

Ce doit être une nouveauté Excel 2010. Je vérifierai sur l'autre partition de mon DD
plus tard si elle est disponible sous Excel 2007 (je ne crois pas ... d e mémoire)


MichD
------------------------------------------
"Péhemme" a écrit dans le message de groupe de discussion : 4e8ca9 2b$0$30788$

Bonjour Denis,

Pour Excel 2010 et peut-être 2007 (pas vérifié pour cette versio n)
= No.Semaine(A1;2) Norme européenne


En tous cas, sous xl2003, cette dernière donne des résultats surpre nants :
31/12/2011 => 53 i/o 52
01/01/2012 => 1 i/o 52
02/01/2012 => 2 i/o 1

Michel


"MichD" a écrit dans le message de
news:j6i45v$psa$
Bonjour,

Celle-ci est valide pour les 2 calendriers 1900 et 1904.
Elle est de Daniel Maher ou Laurent Longre

En supposant que B3 contienne une date reconnue par Excel (norme
européenne
=ENT((B3-(DATE(ANNEE(B3-JOURSEM(B3-1)+4);1;3)-JOURSEM(DATE(ANNEE(B3- JOURSEM(B3-1)+4);1;3)))+5)/7)

Pour la norme américaine : =No.Semaine(A1)


Pour Excel 2010 et peut-être 2007 (pas vérifié pour cette versio n)

On peut utiliser = No.Semaine(A1;1) Norme américaine
= No.Semaine(A1;2) Norme européenne



MichD
------------------------------------------
"Péhemme" a écrit dans le message de groupe de discussion :
4e8c81dc$0$30764$

Bonsoir yan,

S'il était présent, Maude Este t'aurais répondu :
Je cite :
-----
=ENT(MOD(ENT((A1-2)/7)+0,6;52+5/28))+1
nb : cette formule ne vaut que pour le calendrier Excel standard (non
1904)
et
ne marche que jusque 2100

Cette formule est basée sur le cycle solaire qui veut que tout les 2 8 ans,
une
même date porte le même nom de jour
../..
Le cycle solaire est le nom donné à un paramètre du calendrier u tilisé
dans
le
comput ecclésiastique.
Dans le comput ecclésiastique, le cycle solaire est le rang d'une an née
dans
le
cycle de 28 ans d'une échelle de temps commençant arbitrairement e n l'an
20
de l'ère
chrétienne. Dans le calendrier julien, les jours de la semaine se
retrouvent
aux
mêmes dates au bout de 28 ans et notamment les dimanches, jours cons acrés
autrefois au Soleil.
../..
;o)))
http://subaru2.univ-lemans.fr/~hainry/calend.html
voir avec curiosité aussi une autre approche :
notamment les explications de Laurent L. ;o)))
-----
Fin de Citation
Michel


"yan"<xyx.orange.fr> a écrit dans le message de
news:4e8c7e3a$0$30758$
bonjour a tous
comment récupérer en Visual basic le numéro de semaine d'une ce llule
contenant une date?
Pour le jour je fait x = Day (activecell) pour mois x = month
(activecell)
Mais pour le numéro de semaine on fait comment? Si toutefois c'est
possible de façon simple
x = week(activecell) n'est apparemment pas du code

Merci à vous
cordialemnt
Yan



Avatar
DanielCo
Bonjour,
Je crois que la fonctionnalité a été ajoutée dans xl2010 :
extrait de l'aide alors que celle de XL2007 ne diffère pas des versions
précédentes:

numéro_de_série Obligatoire. Représente une date de la semaine. Les
dates doivent être entrées en utilisant la fonction DATE, ou sous la
forme de résultats d’autres formules ou fonctions. Par exemple,
utilisez DATE(2008;5;23) pour le 23e jour du mois de mai 2008. Des
problèmes peuvent survenir si les dates sont entrées sous forme de
texte.
type_retour Facultatif. Détermine quel jour est considéré comme le
début de la semaine. La valeur par défaut est 1.

Argument type_retour La semaine commence le Système
1 ou omis Dimanche 1
2 Lundi 1
11 Lundi 1
12 Mardi 1
13 Mercredi 1
14 Jeudi 1
15 Vendredi 1
16 Samedi 1
17 Dimanche 1
21 Lundi 2

Cordialement.
Daniel


Bonjour,

Tu es sûr que c'est sous Excel 2007 qu'il faut tester ?

La tronche de la formule encouragerait à d'abord tester avec l'utilitaire
d'analyse activé, non ? Comme d'ailleurs Excelabo le signale au passage ...

Ils n'ont pas tort de préciser la définition de la première semaine (semaine
qui inclut le 1er janvier), car d'autres définitions sont possibles, comme
par exemple semaine du premier Lundi de l'année.
____________________________________
MichD a écrit, le 05/10/2011 21:13 :
| = No.Semaine(A1;2) Norme européenne

Cette fonction n'existe pas sous Excel 2003, c'est sûr!

Ce doit être une nouveauté Excel 2010. Je vérifierai sur l'autre partition
de mon DD
plus tard si elle est disponible sous Excel 2007 (je ne crois pas ... de
mémoire)


MichD
------------------------------------------
"Péhemme" a écrit dans le message de groupe de discussion :
4e8ca92b$0$30788$

Bonjour Denis,

Pour Excel 2010 et peut-être 2007 (pas vérifié pour cette version)
= No.Semaine(A1;2) Norme européenne


En tous cas, sous xl2003, cette dernière donne des résultats surprenants :
31/12/2011 => 53 i/o 52
01/01/2012 => 1 i/o 52
02/01/2012 => 2 i/o 1

Michel


"MichD" a écrit dans le message de
news:j6i45v$psa$
Bonjour,

Celle-ci est valide pour les 2 calendriers 1900 et 1904.
Elle est de Daniel Maher ou Laurent Longre

En supposant que B3 contienne une date reconnue par Excel (norme
européenne
=ENT((B3-(DATE(ANNEE(B3-JOURSEM(B3-1)+4);1;3)-JOURSEM(DATE(ANNEE(B3-JOURSEM(B3-1)+4);1;3)))+5)/7)

Pour la norme américaine : =No.Semaine(A1)


Pour Excel 2010 et peut-être 2007 (pas vérifié pour cette version)

On peut utiliser = No.Semaine(A1;1) Norme américaine
= No.Semaine(A1;2) Norme européenne



MichD
------------------------------------------
"Péhemme" a écrit dans le message de groupe de discussion :
4e8c81dc$0$30764$

Bonsoir yan,

S'il était présent, Maude Este t'aurais répondu :
Je cite :
-----
=ENT(MOD(ENT((A1-2)/7)+0,6;52+5/28))+1
nb : cette formule ne vaut que pour le calendrier Excel standard (non
1904)
et
ne marche que jusque 2100

Cette formule est basée sur le cycle solaire qui veut que tout les 28 ans,
une
même date porte le même nom de jour
../..
Le cycle solaire est le nom donné à un paramètre du calendrier utilisé
dans
le
comput ecclésiastique.
Dans le comput ecclésiastique, le cycle solaire est le rang d'une année
dans
le
cycle de 28 ans d'une échelle de temps commençant arbitrairement en l'an
20
de l'ère
chrétienne. Dans le calendrier julien, les jours de la semaine se
retrouvent
aux
mêmes dates au bout de 28 ans et notamment les dimanches, jours consacrés
autrefois au Soleil.
../..
;o)))
http://subaru2.univ-lemans.fr/~hainry/calend.html
voir avec curiosité aussi une autre approche :
notamment les explications de Laurent L. ;o)))
-----
Fin de Citation
Michel


"yan"<xyx.orange.fr> a écrit dans le message de
news:4e8c7e3a$0$30758$
bonjour a tous
comment récupérer en Visual basic le numéro de semaine d'une cellule
contenant une date?
Pour le jour je fait x = Day (activecell) pour mois x = month
(activecell)
Mais pour le numéro de semaine on fait comment? Si toutefois c'est
possible de façon simple
x = week(activecell) n'est apparemment pas du code

Merci à vous
cordialemnt
Yan
Avatar
MichD
Selon l'aide de Microsoft Excel 2010 sur la fonction "No.Semaine()"

NO.SEMAINE, fonction
'--------------------------------------
Cet article décrit la syntaxe de la formule et l’utilisation de la fonction NO.SEMAINE dans Microsoft Excel.

Description

Renvoie le numéro de semaine d’une date spécifique. Par exemple, la semaine contenant le 1er janvier est la première semaine
de l’année ; elle est numérotée semaine 1.

Il existe deux systèmes utilisés pour cette fonction :
Système 1 La semaine contenant le 1er janvier est la première semaine de l’année ; elle est numérotée semaine 1.
Système 2 La semaine contenant le premier mardi de l’année est la première semaine de l’année ; elle est numérotée semaine
1. Ce système correspond à la méthodologie spécifiée dans la norme ISO 8601, appelé couramment système de numérotation des
semaines européen.
'--------------------------------------


Selon l'aide de Microsoft Excel 2007 sur la fonction "No.Semaine()"
'---------------------------------------
La fonction NO.SEMAINE considère la semaine comprenant le 1er janvier comme la première semaine de l'année. Cependant, selon
une norme européenne, la première semaine est celle dont la majorité des jours (quatre ou plus) tombent dans la nouvelle
année. Ainsi, pour les années dont trois jours ou moins sont dans la première semaine de janvier, la fonction NO.SEMAINE
produit des numéros de semaines incorrects selon la norme européenne.
'---------------------------------------



MichD
------------------------------------------
Avatar
MichD
Selon l'aide de Microsoft Excel 2010, la fonction No.Semaine() :

'----------------------------------------------------------
Description

Renvoie le numéro de semaine d’une date spécifique. Par exemple, la semaine contenant le 1er janvier est la première semaine
de l’année ; elle est numérotée semaine 1.

Il existe deux systèmes utilisés pour cette fonction :
Système 1 La semaine contenant le 1er janvier est la première semaine de l’année ; elle est numérotée semaine 1.
Système 2 La semaine contenant le premier mardi de l’année est la première semaine de l’année ; elle est numérotée semaine
1. Ce système correspond à la méthodologie spécifiée dans la norme ISO 8601, appelé couramment système de numérotation des
semaines européen
'----------------------------------------------------------


Selon l'aide de Microsoft Excel 2007, la fonction No.Semaine() :
'----------------------------------------------------------
La fonction NO.SEMAINE considère la semaine comprenant le 1er janvier comme la première semaine de l'année. Cependant, selon
une norme européenne, la première semaine est celle dont la majorité des jours (quatre ou plus) tombent dans la nouvelle
année. Ainsi, pour les années dont trois jours ou moins sont dans la première semaine de janvier, la fonction NO.SEMAINE
produit des numéros de semaines incorrects selon la norme européenne.
'----------------------------------------------------------


MichD
------------------------------------------
Avatar
Gloops
MichD a écrit, le 09/10/2011 13:51 :
Système 2 La semaine contenant le premier mardi de l’an née
est la première semaine de l’année ; elle est numé rotée semaine



Remarque, histoire de dire autre chose, on aurait aussi pu prendre le
premier Mercredi :)
Avatar
Gloops
MichD a écrit, le 09/10/2011 13:51 :
Selon l'aide de Microsoft Excel 2010 sur la fonction "No.Semaine()"

NO.SEMAINE, fonction
'--------------------------------------
Cet article décrit la syntaxe de la formule et l’utilisati on de la fonction NO.SEMAINE dans Microsoft Excel.

Description

Renvoie le numéro de semaine d’une date spécifique. P ar exemple, la semaine contenant le 1er janvier est la première sema ine
de l’année ; elle est numérotée semaine 1.

Il existe deux systèmes utilisés pour cette fonction :
Système 1 La semaine contenant le 1er janvier est la premiè re semaine de l’année ; elle est numérotée semaine 1.
Système 2 La semaine contenant le premier mardi de l’an née est la première semaine de l’année ; elle est numérotée semaine
1. Ce système correspond à la méthodologie spécifià ©e dans la norme ISO 8601, appelé couramment système de numà ©rotation des
semaines européen.
'--------------------------------------


Selon l'aide de Microsoft Excel 2007 sur la fonction "No.Semaine()"
'---------------------------------------
La fonction NO.SEMAINE considère la semaine comprenant le 1er janv ier comme la première semaine de l'année. Cependant, selon
une norme européenne, la première semaine est celle dont la m ajorité des jours (quatre ou plus) tombent dans la nouvelle
année. Ainsi, pour les années dont trois jours ou moins sont dans la première semaine de janvier, la fonction NO.SEMAINE
produit des numéros de semaines incorrects selon la norme europà ©enne.
'---------------------------------------



MichD
------------------------------------------




Il n'y a pas de module complémentaire à charger, alors ?
1 2 3