a écrit dans le message news: 346b01c42924$c0dc48c0$ la mémoire d'excel : http://excelabo.net
-----Message d'origine----- Bonjour à tous
Je cherche la syntaxe en VBA pour récupérer le n° de semaine d'une date
donnée
Mémoire, quand tu me laisses tomber.........
JJ
.
Jacky
Il y a bien celle-ci, mais avec erreur...
Sub NoSem() ' fonction init. Laurent Longre reP = InputBox("Saisissez une date sous la forme jj/mm/aaaa" _ & Chr(10) & "(ex: 01/01/" & Year(Date) & ")") If reP = "" Or Not IsDate(reP) Then Exit Sub _ Else reP = DateValue(reP) dteVar = CDate(reP) D = Int(dteVar) reS = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1) reS = ((D - reS - 3 + (Weekday(reS) + 1) Mod 7)) 7 + 1 MsgBox "Semaine: " & reS End Sub
JJ
"Jacky" a écrit dans le message news:
Bonjour à tous
Je cherche la syntaxe en VBA pour récupérer le n° de semaine d'une date donnée
Mémoire, quand tu me laisses tomber.........
JJ
Il y a bien celle-ci, mais avec erreur...
Sub NoSem()
' fonction init. Laurent Longre
reP = InputBox("Saisissez une date sous la forme jj/mm/aaaa" _
& Chr(10) & "(ex: 01/01/" & Year(Date) & ")")
If reP = "" Or Not IsDate(reP) Then Exit Sub _
Else reP = DateValue(reP)
dteVar = CDate(reP)
D = Int(dteVar)
reS = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
reS = ((D - reS - 3 + (Weekday(reS) + 1) Mod 7)) 7 + 1
MsgBox "Semaine: " & reS
End Sub
JJ
"Jacky" <Jackyenlevez.jaeg@wanadoo.fr> a écrit dans le message news:
OL7ewtRKEHA.952@TK2MSFTNGP12.phx.gbl...
Bonjour à tous
Je cherche la syntaxe en VBA pour récupérer le n° de semaine d'une date
donnée
Sub NoSem() ' fonction init. Laurent Longre reP = InputBox("Saisissez une date sous la forme jj/mm/aaaa" _ & Chr(10) & "(ex: 01/01/" & Year(Date) & ")") If reP = "" Or Not IsDate(reP) Then Exit Sub _ Else reP = DateValue(reP) dteVar = CDate(reP) D = Int(dteVar) reS = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1) reS = ((D - reS - 3 + (Weekday(reS) + 1) Mod 7)) 7 + 1 MsgBox "Semaine: " & reS End Sub
JJ
"Jacky" a écrit dans le message news:
Bonjour à tous
Je cherche la syntaxe en VBA pour récupérer le n° de semaine d'une date donnée
Mémoire, quand tu me laisses tomber.........
JJ
AV
Function NUMSEM_ISO_europ(cel As Range) 'av 'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400 ans) If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then NUMSEM_ISO_europ = 52 Exit Function End If If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then NUMSEM_ISO_europ = 1 Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2) End If End Function
AV
Function NUMSEM_ISO_europ(cel As Range) 'av
'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400
ans)
If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then
NUMSEM_ISO_europ = 52
Exit Function
End If
If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then
NUMSEM_ISO_europ = 1
Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2)
End If
End Function
Function NUMSEM_ISO_europ(cel As Range) 'av 'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400 ans) If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then NUMSEM_ISO_europ = 52 Exit Function End If If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then NUMSEM_ISO_europ = 1 Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2) End If End Function
AV
Patrick Bastard
Bonjour, Jacky.
Une recherche sur ce forum (Rechercher, et taper Semaine dans message) te renvoie au 18/02 19h05 où Alain se décarcassait pour proposer :
<Avec qques erreurs..... !
<Une : <Function NUMSEM_ISO_europ(cel As Range) 'av <'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400 <ans) <If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then <NUMSEM_ISO_europ = 52 <Exit Function <End If <If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then < NUMSEM_ISO_europ = 1 < Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2) <End If <End Function
<AV
Bien cordialement, -- ==================================== P. Bastard. Pour me contacter, remplacez "Chez" par @ dans l'adresse
Une foule de conseils utiles sur le site de Misange : http://www.excelabo.net
Bonjour, Jacky.
Une recherche sur ce forum (Rechercher, et taper Semaine dans message) te
renvoie au 18/02 19h05 où Alain se décarcassait pour proposer :
<Avec qques erreurs..... !
<Une :
<Function NUMSEM_ISO_europ(cel As Range) 'av
<'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle
400
<ans)
<If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then
<NUMSEM_ISO_europ = 52
<Exit Function
<End If
<If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then
< NUMSEM_ISO_europ = 1
< Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2)
<End If
<End Function
<AV
Bien cordialement,
--
==================================== P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse
Une foule de conseils utiles sur le site de Misange :
http://www.excelabo.net
Une recherche sur ce forum (Rechercher, et taper Semaine dans message) te renvoie au 18/02 19h05 où Alain se décarcassait pour proposer :
<Avec qques erreurs..... !
<Une : <Function NUMSEM_ISO_europ(cel As Range) 'av <'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400 <ans) <If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then <NUMSEM_ISO_europ = 52 <Exit Function <End If <If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then < NUMSEM_ISO_europ = 1 < Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2) <End If <End Function
<AV
Bien cordialement, -- ==================================== P. Bastard. Pour me contacter, remplacez "Chez" par @ dans l'adresse
Une foule de conseils utiles sur le site de Misange : http://www.excelabo.net
AV
Ca aussi :
Function NUM_SEM(cel As Range) 'AV d'après Evert van den Heuvel 'compatible calendrier 1900/1904 x = cel.Address NUM_SEM = Evaluate("1+int((" & x & "-date(year(" & x & "+4-weekday(" & x & "+6)),1,5)+weekday(date(year(" & x & "+4-weekday(" & x & "+6)),1,3)))/7)") End Function
AV
Ca aussi :
Function NUM_SEM(cel As Range)
'AV d'après Evert van den Heuvel
'compatible calendrier 1900/1904
x = cel.Address
NUM_SEM = Evaluate("1+int((" & x & "-date(year(" & x & "+4-weekday(" & x &
"+6)),1,5)+weekday(date(year(" & x & "+4-weekday(" & x & "+6)),1,3)))/7)")
End Function
Function NUM_SEM(cel As Range) 'AV d'après Evert van den Heuvel 'compatible calendrier 1900/1904 x = cel.Address NUM_SEM = Evaluate("1+int((" & x & "-date(year(" & x & "+4-weekday(" & x & "+6)),1,5)+weekday(date(year(" & x & "+4-weekday(" & x & "+6)),1,3)))/7)") End Function
AV
Patrick Bastard
Bonjour, Alain.
Désolé, mon post a croisé le tien.
Bien cordialement,
-- ==================================== P. Bastard. Pour me contacter, remplacez "Chez" par @ dans l'adresse
Une foule de conseils utiles sur le site de Misange : http://www.excelabo.net
"AV" a écrit dans le message de news:%
Function NUMSEM_ISO_europ(cel As Range) 'av 'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400
ans) If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then NUMSEM_ISO_europ = 52 Exit Function End If If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then NUMSEM_ISO_europ = 1 Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2) End If End Function
AV
Bonjour, Alain.
Désolé, mon post a croisé le tien.
Bien cordialement,
--
==================================== P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse
Une foule de conseils utiles sur le site de Misange :
http://www.excelabo.net
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:%23FnGpSTKEHA.1764@TK2MSFTNGP12.phx.gbl...
Function NUMSEM_ISO_europ(cel As Range) 'av
'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle
400
ans)
If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then
NUMSEM_ISO_europ = 52
Exit Function
End If
If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then
NUMSEM_ISO_europ = 1
Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2)
End If
End Function
-- ==================================== P. Bastard. Pour me contacter, remplacez "Chez" par @ dans l'adresse
Une foule de conseils utiles sur le site de Misange : http://www.excelabo.net
"AV" a écrit dans le message de news:%
Function NUMSEM_ISO_europ(cel As Range) 'av 'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400
ans) If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then NUMSEM_ISO_europ = 52 Exit Function End If If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then NUMSEM_ISO_europ = 1 Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2) End If End Function
AV
Jacky
'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400 ans)
Je veux bien me retourner dans ma tombe si celui qui s'en servira se heurte sur la première erreur et se fâche.
Merci Alain, merci Patrick
Bonne journée
"AV" a écrit dans le message news:
Ca aussi :
Function NUM_SEM(cel As Range) 'AV d'après Evert van den Heuvel 'compatible calendrier 1900/1904 x = cel.Address NUM_SEM = Evaluate("1+int((" & x & "-date(year(" & x & "+4-weekday(" & x & "+6)),1,5)+weekday(date(year(" & x & "+4-weekday(" & x & "+6)),1,3)))/7)") End Function
AV
'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle
400 ans)
Je veux bien me retourner dans ma tombe si celui qui s'en servira se heurte
sur la première erreur et se fâche.
Merci Alain, merci Patrick
Bonne journée
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message news:
unyarVTKEHA.1764@TK2MSFTNGP12.phx.gbl...
Ca aussi :
Function NUM_SEM(cel As Range)
'AV d'après Evert van den Heuvel
'compatible calendrier 1900/1904
x = cel.Address
NUM_SEM = Evaluate("1+int((" & x & "-date(year(" & x & "+4-weekday(" & x &
"+6)),1,5)+weekday(date(year(" & x & "+4-weekday(" & x & "+6)),1,3)))/7)")
End Function
'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400 ans)
Je veux bien me retourner dans ma tombe si celui qui s'en servira se heurte sur la première erreur et se fâche.
Merci Alain, merci Patrick
Bonne journée
"AV" a écrit dans le message news:
Ca aussi :
Function NUM_SEM(cel As Range) 'AV d'après Evert van den Heuvel 'compatible calendrier 1900/1904 x = cel.Address NUM_SEM = Evaluate("1+int((" & x & "-date(year(" & x & "+4-weekday(" & x & "+6)),1,5)+weekday(date(year(" & x & "+4-weekday(" & x & "+6)),1,3)))/7)") End Function
AV
Jacky
Bonjour Patick
Une recherche sur ce forum (Rechercher, et taper Semaine dans message) te renvoie au 18/02 19h05 où Alain se décarcassait pour proposer :
Ce que j'ai fait, mais avec No.semaine et je n'ai rien trouvé....... Mais bon,.... je prend celle d'Alain et me contente des quelques erreurs.......
Merci à toi JJ
"Patrick Bastard" <bastardp"chez"free.fr> a écrit dans le message news:
Bonjour, Jacky.
Une recherche sur ce forum (Rechercher, et taper Semaine dans message) te renvoie au 18/02 19h05 où Alain se décarcassait pour proposer :
<Avec qques erreurs..... !
<Une : <Function NUMSEM_ISO_europ(cel As Range) 'av <'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400 <ans) <If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then <NUMSEM_ISO_europ = 52 <Exit Function <End If <If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then < NUMSEM_ISO_europ = 1 < Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2) <End If <End Function
<AV
Bien cordialement, -- ==================================== > P. Bastard. Pour me contacter, remplacez "Chez" par @ dans l'adresse
Une foule de conseils utiles sur le site de Misange : http://www.excelabo.net
Bonjour Patick
Une recherche sur ce forum (Rechercher, et taper Semaine dans message) te
renvoie au 18/02 19h05 où Alain se décarcassait pour proposer :
Ce que j'ai fait, mais avec No.semaine et je n'ai rien trouvé.......
Mais bon,.... je prend celle d'Alain et me contente des quelques
erreurs.......
Merci à toi
JJ
"Patrick Bastard" <bastardp"chez"free.fr> a écrit dans le message news:
uZyipUTKEHA.3428@TK2MSFTNGP09.phx.gbl...
Bonjour, Jacky.
Une recherche sur ce forum (Rechercher, et taper Semaine dans message) te
renvoie au 18/02 19h05 où Alain se décarcassait pour proposer :
<Avec qques erreurs..... !
<Une :
<Function NUMSEM_ISO_europ(cel As Range) 'av
<'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle
400
<ans)
<If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then
<NUMSEM_ISO_europ = 52
<Exit Function
<End If
<If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then
< NUMSEM_ISO_europ = 1
< Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2)
<End If
<End Function
<AV
Bien cordialement,
--
==================================== > P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse
Une foule de conseils utiles sur le site de Misange :
http://www.excelabo.net
Une recherche sur ce forum (Rechercher, et taper Semaine dans message) te renvoie au 18/02 19h05 où Alain se décarcassait pour proposer :
Ce que j'ai fait, mais avec No.semaine et je n'ai rien trouvé....... Mais bon,.... je prend celle d'Alain et me contente des quelques erreurs.......
Merci à toi JJ
"Patrick Bastard" <bastardp"chez"free.fr> a écrit dans le message news:
Bonjour, Jacky.
Une recherche sur ce forum (Rechercher, et taper Semaine dans message) te renvoie au 18/02 19h05 où Alain se décarcassait pour proposer :
<Avec qques erreurs..... !
<Une : <Function NUMSEM_ISO_europ(cel As Range) 'av <'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400 <ans) <If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then <NUMSEM_ISO_europ = 52 <Exit Function <End If <If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then < NUMSEM_ISO_europ = 1 < Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2) <End If <End Function
<AV
Bien cordialement, -- ==================================== > P. Bastard. Pour me contacter, remplacez "Chez" par @ dans l'adresse
Une foule de conseils utiles sur le site de Misange : http://www.excelabo.net