Une autre possibilité (même si je ne comprends pas pourquoi ne pas simplement utiliser la formule directement (sans vba)) Code vb: Sub a()
'syntaxe pour sur XL 2013
'je ne sais plus si NO.SEMAINE.ISO est disponible sur XL2010 et XL2007.
[B1] = Date' juste pour le test [D1] = Application.WorksheetFunction.IsoWeekNum([B1]) EndSub
Personnellement, je n'utilise plus No.semaine car elle était buggée il y a queqlques années.
Je préfère ceci:
Code VBA:
Sub sem2()
ActiveCell.Offset(0, 1).Value = Val(Format(ActiveCell.Value, "ww", vbMonday, vbFirstFourDays))
End Sub
Function SemISO (MyDate As Date) As Integer ' Week Of Year
SemISO= Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If SemISO > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then SemISO = 1
End If
End Function