OVH Cloud OVH Cloud

Weeknum

9 réponses
Avatar
Jacky
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

9 réponses

Avatar
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


.



Avatar
Jacky
pfff....
Merci anonymous

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


.



Avatar
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




Avatar
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
Avatar
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
Avatar
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
Avatar
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




Avatar
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





Avatar
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