Je cherche à déterminer le numéro de la semaine en fonction d'une date.
J'ai fait mes recherches sur le site d'excelabo et j'ai trouvé ce code
Sub NoSem()
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 if
End Sub
J'ai tenté de l'exécuter mais VBE m'indique une erreur de syntaxe à la
ligne
reS = ((D - reS - 3 + (Weekday(reS) + 1) Mod 7)) 7 + 1
Je recherche la cause de cette erreur depuis un bon moment mais je ne
trouve rien!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Sub NoSem() 'AV daT = InputBox("Saisissez une date sous la forme jj/mm/aaaa" _ & Chr(10) & "(ex: 01/01/" & Year(Date) & ")") If daT = "" Or Not IsDate(daT) Then Exit Sub Else: daT = DateValue(daT) If Day(daT) = 2 And Month(daT) = 1 And Year(daT) Mod 400 = 101 Then n°S = 52: Exit Sub n°S = IIf(Weekday(daT) = 2 And Month(daT) = 12 And Day(daT) > 28, 1, DatePart("ww", daT, 2, 2)) MsgBox "Semaine: " & n°S End If End Sub
AV
Sub NoSem() 'AV
daT = InputBox("Saisissez une date sous la forme jj/mm/aaaa" _
& Chr(10) & "(ex: 01/01/" & Year(Date) & ")")
If daT = "" Or Not IsDate(daT) Then
Exit Sub
Else: daT = DateValue(daT)
If Day(daT) = 2 And Month(daT) = 1 And Year(daT) Mod 400 = 101 Then n°S = 52:
Exit Sub
n°S = IIf(Weekday(daT) = 2 And Month(daT) = 12 And Day(daT) > 28, 1,
DatePart("ww", daT, 2, 2))
MsgBox "Semaine: " & n°S
End If
End Sub
Sub NoSem() 'AV daT = InputBox("Saisissez une date sous la forme jj/mm/aaaa" _ & Chr(10) & "(ex: 01/01/" & Year(Date) & ")") If daT = "" Or Not IsDate(daT) Then Exit Sub Else: daT = DateValue(daT) If Day(daT) = 2 And Month(daT) = 1 And Year(daT) Mod 400 = 101 Then n°S = 52: Exit Sub n°S = IIf(Weekday(daT) = 2 And Month(daT) = 12 And Day(daT) > 28, 1, DatePart("ww", daT, 2, 2)) MsgBox "Semaine: " & n°S End If End Sub
Function NoSemaine(MyDate As Date) As Integer ' Week Of Year NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays) If NoSemaine > 52 Then If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then NoSemaine = 1 End If End Function
Cordialement JB
Bonjour,
Je cherche à déterminer le numéro de la semaine en fonction d'une d ate. J'ai fait mes recherches sur le site d'excelabo et j'ai trouvé ce code
Sub NoSem() 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 if End Sub
J'ai tenté de l'exécuter mais VBE m'indique une erreur de syntaxe à la ligne reS = ((D - reS - 3 + (Weekday(reS) + 1) Mod 7)) 7 + 1
Je recherche la cause de cette erreur depuis un bon moment mais je ne trouve rien!
Function NoSemaine(MyDate As Date) As Integer ' Week Of Year
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End Function
Cordialement JB
Bonjour,
Je cherche à déterminer le numéro de la semaine en fonction d'une d ate.
J'ai fait mes recherches sur le site d'excelabo et j'ai trouvé ce code
Sub NoSem()
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 if
End Sub
J'ai tenté de l'exécuter mais VBE m'indique une erreur de syntaxe à la
ligne
reS = ((D - reS - 3 + (Weekday(reS) + 1) Mod 7)) 7 + 1
Je recherche la cause de cette erreur depuis un bon moment mais je ne
trouve rien!
Function NoSemaine(MyDate As Date) As Integer ' Week Of Year NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays) If NoSemaine > 52 Then If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then NoSemaine = 1 End If End Function
Cordialement JB
Bonjour,
Je cherche à déterminer le numéro de la semaine en fonction d'une d ate. J'ai fait mes recherches sur le site d'excelabo et j'ai trouvé ce code
Sub NoSem() 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 if End Sub
J'ai tenté de l'exécuter mais VBE m'indique une erreur de syntaxe à la ligne reS = ((D - reS - 3 + (Weekday(reS) + 1) Mod 7)) 7 + 1
Je recherche la cause de cette erreur depuis un bon moment mais je ne trouve rien!
Y-a-t-il une personne qui puisse m'aider un peu?
D'avance merci.
JLuc
*Bonjour Patrice*, Une fouction que j'utilise tous les jours :
Public Function ISOWeekNum(d1 As Date) As Integer ' Fonction recuperee sur http://www.excelabo.net/xl/calendriers.php#numsemVBA 'Daniel Maher Dim Jan03 As Long Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3) ISOWeekNum = Int((d1 - Jan03 + Weekday(Jan03) + 5) / 7) End Function
Bonjour,
Je cherche à déterminer le numéro de la semaine en fonction d'une date. J'ai fait mes recherches sur le site d'excelabo et j'ai trouvé ce code
Sub NoSem() 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 if End Sub
J'ai tenté de l'exécuter mais VBE m'indique une erreur de syntaxe à la ligne reS = ((D - reS - 3 + (Weekday(reS) + 1) Mod 7)) 7 + 1
Je recherche la cause de cette erreur depuis un bon moment mais je ne trouve rien!
Y-a-t-il une personne qui puisse m'aider un peu?
D'avance merci.
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
*Bonjour Patrice*,
Une fouction que j'utilise tous les jours :
Public Function ISOWeekNum(d1 As Date) As Integer
' Fonction recuperee sur
http://www.excelabo.net/xl/calendriers.php#numsemVBA
'Daniel Maher
Dim Jan03 As Long
Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
ISOWeekNum = Int((d1 - Jan03 + Weekday(Jan03) + 5) / 7)
End Function
Bonjour,
Je cherche à déterminer le numéro de la semaine en fonction d'une date.
J'ai fait mes recherches sur le site d'excelabo et j'ai trouvé ce code
Sub NoSem()
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 if
End Sub
J'ai tenté de l'exécuter mais VBE m'indique une erreur de syntaxe à la ligne
reS = ((D - reS - 3 + (Weekday(reS) + 1) Mod 7)) 7 + 1
Je recherche la cause de cette erreur depuis un bon moment mais je ne trouve
rien!
*Bonjour Patrice*, Une fouction que j'utilise tous les jours :
Public Function ISOWeekNum(d1 As Date) As Integer ' Fonction recuperee sur http://www.excelabo.net/xl/calendriers.php#numsemVBA 'Daniel Maher Dim Jan03 As Long Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3) ISOWeekNum = Int((d1 - Jan03 + Weekday(Jan03) + 5) / 7) End Function
Bonjour,
Je cherche à déterminer le numéro de la semaine en fonction d'une date. J'ai fait mes recherches sur le site d'excelabo et j'ai trouvé ce code
Sub NoSem() 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 if End Sub
J'ai tenté de l'exécuter mais VBE m'indique une erreur de syntaxe à la ligne reS = ((D - reS - 3 + (Weekday(reS) + 1) Mod 7)) 7 + 1
Je recherche la cause de cette erreur depuis un bon moment mais je ne trouve rien!
Y-a-t-il une personne qui puisse m'aider un peu?
D'avance merci.
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
Jacquouille
Binamé Président En Gaulois: Bien Aimé ou Gentil Président -))
Ce filet de macro s'exécute parfaitement jusqu'à la fin du premier msg qui demande d'entrer une date. Ensuite, pffffft, plus rien. J'ai mis un contrôle (MsgBox daT) immédiatement avant If daT = "" Or Not IsDate(daT) Then et il m'affiche bien daT Par contre, si je le mets après cette même ligne, il me jette ! Porquè? Le msgbox ne reconnaîtrait-il pas le format date? Tout au plaisir de vous lire ......
Bien amicalmement, Vivement conseillés: http://www.excelabo.net http://jacxl.free.fr/mpfe/trombino.html http://dj.joss.free.fr/netiquet.htm http://frederic.sigonneau.free.fr/
Jacquouille.
"AV" a écrit dans le message de news:
Sub NoSem() 'AV daT = InputBox("Saisissez une date sous la forme jj/mm/aaaa" _ & Chr(10) & "(ex: 01/01/" & Year(Date) & ")") If daT = "" Or Not IsDate(daT) Then Exit Sub Else: daT = DateValue(daT) If Day(daT) = 2 And Month(daT) = 1 And Year(daT) Mod 400 = 101 Then n°S = 52: Exit Sub n°S = IIf(Weekday(daT) = 2 And Month(daT) = 12 And Day(daT) > 28, 1, DatePart("ww", daT, 2, 2)) MsgBox "Semaine: " & n°S End If End Sub
AV
Binamé Président
En Gaulois: Bien Aimé ou Gentil Président -))
Ce filet de macro s'exécute parfaitement jusqu'à la fin du premier msg qui
demande d'entrer une date.
Ensuite, pffffft, plus rien.
J'ai mis un contrôle (MsgBox daT) immédiatement avant If daT = "" Or Not
IsDate(daT) Then
et il m'affiche bien daT
Par contre, si je le mets après cette même ligne, il me jette !
Porquè?
Le msgbox ne reconnaîtrait-il pas le format date?
Tout au plaisir de vous lire ......
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/
Jacquouille.
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de news:
uGAEBUXBHHA.4024@TK2MSFTNGP04.phx.gbl...
Sub NoSem() 'AV
daT = InputBox("Saisissez une date sous la forme jj/mm/aaaa" _
& Chr(10) & "(ex: 01/01/" & Year(Date) & ")")
If daT = "" Or Not IsDate(daT) Then
Exit Sub
Else: daT = DateValue(daT)
If Day(daT) = 2 And Month(daT) = 1 And Year(daT) Mod 400 = 101 Then n°S =
52: Exit Sub
n°S = IIf(Weekday(daT) = 2 And Month(daT) = 12 And Day(daT) > 28, 1,
DatePart("ww", daT, 2, 2))
MsgBox "Semaine: " & n°S
End If
End Sub
Binamé Président En Gaulois: Bien Aimé ou Gentil Président -))
Ce filet de macro s'exécute parfaitement jusqu'à la fin du premier msg qui demande d'entrer une date. Ensuite, pffffft, plus rien. J'ai mis un contrôle (MsgBox daT) immédiatement avant If daT = "" Or Not IsDate(daT) Then et il m'affiche bien daT Par contre, si je le mets après cette même ligne, il me jette ! Porquè? Le msgbox ne reconnaîtrait-il pas le format date? Tout au plaisir de vous lire ......
Bien amicalmement, Vivement conseillés: http://www.excelabo.net http://jacxl.free.fr/mpfe/trombino.html http://dj.joss.free.fr/netiquet.htm http://frederic.sigonneau.free.fr/
Jacquouille.
"AV" a écrit dans le message de news:
Sub NoSem() 'AV daT = InputBox("Saisissez une date sous la forme jj/mm/aaaa" _ & Chr(10) & "(ex: 01/01/" & Year(Date) & ")") If daT = "" Or Not IsDate(daT) Then Exit Sub Else: daT = DateValue(daT) If Day(daT) = 2 And Month(daT) = 1 And Year(daT) Mod 400 = 101 Then n°S = 52: Exit Sub n°S = IIf(Weekday(daT) = 2 And Month(daT) = 12 And Day(daT) > 28, 1, DatePart("ww", daT, 2, 2)) MsgBox "Semaine: " & n°S End If End Sub