1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Option Explicit
Private Declare Function QueryPerformanceCounter Lib "kernel32" (x As Currency) As Boolean
Private Declare Function QueryPerformanceFrequency Lib "kernel32" (x As Currency) As Boolean
Private Function NoSemaineISO(d As Date) As Integer
NoSemaineISO = Format(d, "ww", vbMonday, vbFirstFourDays)
End Function
Sub semISO()
Dim lig As Long
Dim LastRow As Long
Dim Dep As Currency, Fin As Currency, Freq As Currency
QueryPerformanceCounter Dep
Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.EnableEvents = False
LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
For lig = 2 To LastRow
Feuil1.Cells(lig, 13) = NoSemaineISO(Feuil1.Cells(lig, 1))
Next lig
QueryPerformanceCounter Fin
QueryPerformanceFrequency Freq
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
MsgBox Format(((Fin - Dep) / Freq), "0.000 s")
End Sub |
Partager