j'utilise la fonction NO.SEMAINE dans excel 2003.
si j'ouvre mon classeur avec Excel 2007; il indique une erreur sur cette
fonction, alors qu'elle existe dans excel 2007. si je la valide dans excel
2007, c'est OK.
j'enregistre mon classeur au format excel 2003 et quand je l'ouvre sous
excel 2003, la fonction a été converti en anglais (WEEK.NUM) ?? et donc non
reconnu dans excel 2003.
merci de votre aide
Jacques
'///////////////////////////////////////////////\\\\\ \\\\\\ '|||| |||| '|||| NUMERO DE SEMAINE NORME ISO |||| '|||| européenne donc française |||| '|||| |||| '///////////////////////////////////////////////\\\\\ \\\\\\
Function ISOWeekNumber(UneDate As Date) As Integer 'détermine le numero ISO de la semaine à partir de "UneDate" '!! nécessite : Function QuantièmeLundiPremièreSemaine(UneAnnée As Integer) As Date
Dim AnnéeEtudiée As Integer Dim DébutAnnéePrécédente As Date Dim DébutAnnéeEtudiée As Date Dim DébutAnnéeSuivante As Date
AnnéeEtudiée = Year(UneDate)
' La première semaine complète de l'année débute le .... DébutAnnéePrécédente = QuantièmeLundiPremièreSemaine(AnnéeEt udiée - 1) DébutAnnéeEtudiée = QuantièmeLundiPremièreSemaine(AnnéeEtudi ée) FinAnnèeEtudiée = QuantièmeLundiPremièreSemaine(AnnéeEtudiée + 1)
Select Case UneDate Case Is > FinAnnèeEtudiée ISOWeekNumber = (UneDate - DébutAnnéeSuivante) / 7 + 1 AnnéeEtudiée = Year(UneDate) + 1 Case Is < DébutAnnéeEtudiée ISOWeekNumber = (UneDate - DébutAnnéePrécédente) / 7 + 1 AnnéeEtudiée = Year(UneDate) - 1 Case Else ISOWeekNumber = (UneDate - DébutAnnéeEtudiée) / 7 + 1 AnnéeEtudiée = Year(UneDate) End Select
End Function
'///////////////////////////////////////////////\\\\\ \\\\\\ '|||| |||| '|||| DÉTERMINE LE QUANTIÉME DU PREMIER LUNDI DE L'ANNÉE |||| '|||| |||| '\\\\\\\\\\\ ///////////////////////////////////////////////
Function QuantièmeLundiPremièreSemaine(UneAnnée As Integer) As Date
Dim NumeroDuJour As Integer 'conversion JourDeLAn en numéro du jour dans la semaine ' CORRESPONDANCE : lundi = 0, mardi = 1, mercredi = 2 ' jeudi = 3, vendredi = 4, samedi = 5, dimanche = 6
Dim JourDeLAn As Double 'numero du jour de l'an dans la série Excell
If NumeroDuJour < 4 Then QuantièmeLundiPremièreSemaine = JourDeLAn - NumeroDuJour Else QuantièmeLundiPremièreSemaine = JourDeLAn - NumeroDuJour + 7 End If
'///////////////////////////////////////////////\\\\\\\\\\\
\\\\\\\\\\\\
'||||
||||
'|||| NUMERO DE SEMAINE NORME
ISO ||||
'|||| européenne donc
française ||||
'||||
||||
'///////////////////////////////////////////////\\\\\\\\\\\
\\\\\\\\\\\\
Function ISOWeekNumber(UneDate As Date) As Integer
'détermine le numero ISO de la semaine à partir de "UneDate"
'!! nécessite : Function QuantièmeLundiPremièreSemaine(UneAnnée As
Integer) As Date
Dim AnnéeEtudiée As Integer
Dim DébutAnnéePrécédente As Date
Dim DébutAnnéeEtudiée As Date
Dim DébutAnnéeSuivante As Date
AnnéeEtudiée = Year(UneDate)
' La première semaine complète de l'année débute le ....
DébutAnnéePrécédente = QuantièmeLundiPremièreSemaine(AnnéeEt udiée - 1)
DébutAnnéeEtudiée = QuantièmeLundiPremièreSemaine(AnnéeEtudi ée)
FinAnnèeEtudiée = QuantièmeLundiPremièreSemaine(AnnéeEtudiée + 1)
Select Case UneDate
Case Is > FinAnnèeEtudiée
ISOWeekNumber = (UneDate - DébutAnnéeSuivante) / 7 + 1
AnnéeEtudiée = Year(UneDate) + 1
Case Is < DébutAnnéeEtudiée
ISOWeekNumber = (UneDate - DébutAnnéePrécédente) / 7 + 1
AnnéeEtudiée = Year(UneDate) - 1
Case Else
ISOWeekNumber = (UneDate - DébutAnnéeEtudiée) / 7 + 1
AnnéeEtudiée = Year(UneDate)
End Select
End Function
'///////////////////////////////////////////////\\\\\\\\\\\
\\\\\\\\\\\\
'||||
||||
'|||| DÉTERMINE LE QUANTIÉME DU PREMIER LUNDI DE
L'ANNÉE ||||
'||||
||||
'\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////////////////////////
Function QuantièmeLundiPremièreSemaine(UneAnnée As Integer) As Date
Dim NumeroDuJour As Integer 'conversion JourDeLAn en numéro du jour
dans la semaine
' CORRESPONDANCE : lundi = 0, mardi = 1, mercredi = 2
' jeudi = 3, vendredi = 4, samedi = 5, dimanche = 6
Dim JourDeLAn As Double 'numero du jour de l'an dans la série
Excell
If NumeroDuJour < 4 Then
QuantièmeLundiPremièreSemaine = JourDeLAn - NumeroDuJour
Else
QuantièmeLundiPremièreSemaine = JourDeLAn - NumeroDuJour + 7
End If
'///////////////////////////////////////////////\\\\\ \\\\\\ '|||| |||| '|||| NUMERO DE SEMAINE NORME ISO |||| '|||| européenne donc française |||| '|||| |||| '///////////////////////////////////////////////\\\\\ \\\\\\
Function ISOWeekNumber(UneDate As Date) As Integer 'détermine le numero ISO de la semaine à partir de "UneDate" '!! nécessite : Function QuantièmeLundiPremièreSemaine(UneAnnée As Integer) As Date
Dim AnnéeEtudiée As Integer Dim DébutAnnéePrécédente As Date Dim DébutAnnéeEtudiée As Date Dim DébutAnnéeSuivante As Date
AnnéeEtudiée = Year(UneDate)
' La première semaine complète de l'année débute le .... DébutAnnéePrécédente = QuantièmeLundiPremièreSemaine(AnnéeEt udiée - 1) DébutAnnéeEtudiée = QuantièmeLundiPremièreSemaine(AnnéeEtudi ée) FinAnnèeEtudiée = QuantièmeLundiPremièreSemaine(AnnéeEtudiée + 1)
Select Case UneDate Case Is > FinAnnèeEtudiée ISOWeekNumber = (UneDate - DébutAnnéeSuivante) / 7 + 1 AnnéeEtudiée = Year(UneDate) + 1 Case Is < DébutAnnéeEtudiée ISOWeekNumber = (UneDate - DébutAnnéePrécédente) / 7 + 1 AnnéeEtudiée = Year(UneDate) - 1 Case Else ISOWeekNumber = (UneDate - DébutAnnéeEtudiée) / 7 + 1 AnnéeEtudiée = Year(UneDate) End Select
End Function
'///////////////////////////////////////////////\\\\\ \\\\\\ '|||| |||| '|||| DÉTERMINE LE QUANTIÉME DU PREMIER LUNDI DE L'ANNÉE |||| '|||| |||| '\\\\\\\\\\\ ///////////////////////////////////////////////
Function QuantièmeLundiPremièreSemaine(UneAnnée As Integer) As Date
Dim NumeroDuJour As Integer 'conversion JourDeLAn en numéro du jour dans la semaine ' CORRESPONDANCE : lundi = 0, mardi = 1, mercredi = 2 ' jeudi = 3, vendredi = 4, samedi = 5, dimanche = 6
Dim JourDeLAn As Double 'numero du jour de l'an dans la série Excell
If NumeroDuJour < 4 Then QuantièmeLundiPremièreSemaine = JourDeLAn - NumeroDuJour Else QuantièmeLundiPremièreSemaine = JourDeLAn - NumeroDuJour + 7 End If
Bonsour® Le Nordiste avec ferveur ;o))) vous nous disiez : ;o))) quitte à utiliser une macro autant utiliser quelquechose de concis ...
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
-- -- @+ ;o)))
Bonsour® Le Nordiste avec ferveur ;o))) vous nous disiez :
;o)))
quitte à utiliser une macro autant utiliser quelquechose de concis ...
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
Bonsour® Le Nordiste avec ferveur ;o))) vous nous disiez : ;o))) quitte à utiliser une macro autant utiliser quelquechose de concis ...
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
-- -- @+ ;o)))
Gilles LEBRET
bonjour
sinon vous devriez essayer la xll MOREFUN qui fonctionne très bien jusqu'à 2003 je ne l'ai pas testée en 2007 mais faites l'essai je ne vois pas pourquoi cela ne marcherai pas à moins que msoft ait tout réécrit le code d'excel (...) il y a dedans un fonction NUM.SEMAINE qui marche bien en semaine ISO
Gilles Le Bret
"jacques" a écrit dans le message de news:
j'utilise la fonction NO.SEMAINE dans excel 2003. si j'ouvre mon classeur avec Excel 2007; il indique une erreur sur cette fonction, alors qu'elle existe dans excel 2007. si je la valide dans excel 2007, c'est OK. j'enregistre mon classeur au format excel 2003 et quand je l'ouvre sous excel 2003, la fonction a été converti en anglais (WEEK.NUM) ?? et donc non reconnu dans excel 2003. merci de votre aide Jacques
bonjour
sinon vous devriez essayer la xll MOREFUN qui fonctionne très bien jusqu'à
2003
je ne l'ai pas testée en 2007 mais faites l'essai je ne vois pas pourquoi
cela ne marcherai pas à moins que msoft ait tout réécrit le code d'excel
(...)
il y a dedans un fonction NUM.SEMAINE qui marche bien en semaine ISO
Gilles Le Bret
"jacques" <jacques@discussions.microsoft.com> a écrit dans le message de
news: 186006A7-E21E-475B-94C6-A40FD4A426DA@microsoft.com...
j'utilise la fonction NO.SEMAINE dans excel 2003.
si j'ouvre mon classeur avec Excel 2007; il indique une erreur sur cette
fonction, alors qu'elle existe dans excel 2007. si je la valide dans excel
2007, c'est OK.
j'enregistre mon classeur au format excel 2003 et quand je l'ouvre sous
excel 2003, la fonction a été converti en anglais (WEEK.NUM) ?? et donc
non
reconnu dans excel 2003.
merci de votre aide
Jacques
sinon vous devriez essayer la xll MOREFUN qui fonctionne très bien jusqu'à 2003 je ne l'ai pas testée en 2007 mais faites l'essai je ne vois pas pourquoi cela ne marcherai pas à moins que msoft ait tout réécrit le code d'excel (...) il y a dedans un fonction NUM.SEMAINE qui marche bien en semaine ISO
Gilles Le Bret
"jacques" a écrit dans le message de news:
j'utilise la fonction NO.SEMAINE dans excel 2003. si j'ouvre mon classeur avec Excel 2007; il indique une erreur sur cette fonction, alors qu'elle existe dans excel 2007. si je la valide dans excel 2007, c'est OK. j'enregistre mon classeur au format excel 2003 et quand je l'ouvre sous excel 2003, la fonction a été converti en anglais (WEEK.NUM) ?? et donc non reconnu dans excel 2003. merci de votre aide Jacques
Péhemme
Bonjour,
...et pour être "up-to-date" à utiliser NUM.SEMAINE dans MOREFUNC à charger sur le site du Chef 3 Plumes (Laurent Longre) :
http://xcell05.free.fr/ (Il m'adressera 3 cahuètes comme à l'accoutumée - Nostalgie quand tu nous tiens...- ) Bonne journée Michel
"Gilles LEBRET" a écrit dans le message de news:
bonjour
sinon vous devriez essayer la xll MOREFUN qui fonctionne très bien jusqu'à 2003 je ne l'ai pas testée en 2007 mais faites l'essai je ne vois pas pourquoi cela ne marcherai pas à moins que msoft ait tout réécrit le code d'excel (...) il y a dedans un fonction NUM.SEMAINE qui marche bien en semaine ISO
Gilles Le Bret
"jacques" a écrit dans le message de news:
j'utilise la fonction NO.SEMAINE dans excel 2003. si j'ouvre mon classeur avec Excel 2007; il indique une erreur sur cette fonction, alors qu'elle existe dans excel 2007. si je la valide dans excel 2007, c'est OK. j'enregistre mon classeur au format excel 2003 et quand je l'ouvre sous excel 2003, la fonction a été converti en anglais (WEEK.NUM) ?? et donc non reconnu dans excel 2003. merci de votre aide Jacques
Bonjour,
...et pour être "up-to-date" à utiliser NUM.SEMAINE dans MOREFUNC à charger
sur le site du Chef 3 Plumes (Laurent Longre) :
http://xcell05.free.fr/
(Il m'adressera 3 cahuètes comme à l'accoutumée - Nostalgie quand tu nous
tiens...- )
Bonne journée
Michel
"Gilles LEBRET" <glebret@a2.socetem.fr> a écrit dans le message de news:
O4YfNcoXIHA.4712@TK2MSFTNGP04.phx.gbl...
bonjour
sinon vous devriez essayer la xll MOREFUN qui fonctionne très bien jusqu'à
2003
je ne l'ai pas testée en 2007 mais faites l'essai je ne vois pas pourquoi
cela ne marcherai pas à moins que msoft ait tout réécrit le code d'excel
(...)
il y a dedans un fonction NUM.SEMAINE qui marche bien en semaine ISO
Gilles Le Bret
"jacques" <jacques@discussions.microsoft.com> a écrit dans le message de
news: 186006A7-E21E-475B-94C6-A40FD4A426DA@microsoft.com...
j'utilise la fonction NO.SEMAINE dans excel 2003.
si j'ouvre mon classeur avec Excel 2007; il indique une erreur sur cette
fonction, alors qu'elle existe dans excel 2007. si je la valide dans
excel
2007, c'est OK.
j'enregistre mon classeur au format excel 2003 et quand je l'ouvre sous
excel 2003, la fonction a été converti en anglais (WEEK.NUM) ?? et donc
non
reconnu dans excel 2003.
merci de votre aide
Jacques
...et pour être "up-to-date" à utiliser NUM.SEMAINE dans MOREFUNC à charger sur le site du Chef 3 Plumes (Laurent Longre) :
http://xcell05.free.fr/ (Il m'adressera 3 cahuètes comme à l'accoutumée - Nostalgie quand tu nous tiens...- ) Bonne journée Michel
"Gilles LEBRET" a écrit dans le message de news:
bonjour
sinon vous devriez essayer la xll MOREFUN qui fonctionne très bien jusqu'à 2003 je ne l'ai pas testée en 2007 mais faites l'essai je ne vois pas pourquoi cela ne marcherai pas à moins que msoft ait tout réécrit le code d'excel (...) il y a dedans un fonction NUM.SEMAINE qui marche bien en semaine ISO
Gilles Le Bret
"jacques" a écrit dans le message de news:
j'utilise la fonction NO.SEMAINE dans excel 2003. si j'ouvre mon classeur avec Excel 2007; il indique une erreur sur cette fonction, alors qu'elle existe dans excel 2007. si je la valide dans excel 2007, c'est OK. j'enregistre mon classeur au format excel 2003 et quand je l'ouvre sous excel 2003, la fonction a été converti en anglais (WEEK.NUM) ?? et donc non reconnu dans excel 2003. merci de votre aide Jacques