thebenoit59 a écrit :
Une première solution avec ce code :
Sub numSemaine()
Dim i&, j As Byte
With Sheets("ii").ListObjects(1).DataBodyRange
For i = 1 To .Rows.Count
For j = 17 To 19
If Not .Item(i, j).Value = "" Then .Item(i, j).Value = WorksheetFunction.WeekNum(CDate(.Item(i, j).Value), 2)
Next j, i
End With
End Sub
Je vous remercie beaucoup. Mince la conversion n'est pas correctement faite ça donne des chiffre comme 4235 :/
Bon, puis-je convertir directement les celluls en numéro de semaine ?
en faisant un truc comme cela :
Sub numSemaine()
Dim i&, j As Byte
With Sheets("ii").ListObjects(1).DataBodyRange
For i = 1 To .Rows.Count
For j = 17 To 19
[b] If Not .Item(i, j).Value = "" Then .Item(i, j).Value = ENT(MOD(ENT(Not .Item(i, j).Value)-2)/7)+0,6;52+5/28))+1[/b]
)
Next j, i
End With
End Sub
[/quote]
En fait, ce qui permet de convertir une date en numéro de semaine est la formule suivante :
=ENT(MOD(ENT(CELLULE-2)/7)+0,6;52+5/28))+1