Sub Slow()
Dim TheTime(1 To 4) As Long, TheTimerStart As Double, TheTimerStop As Double
Dim Message As String
Dim i As Byte, y As Integer
TheTimerStart = Timer
'Mettre le code à exécuter et dont on mesure le temps d'exécution ici
Dim ObjCell As Range
For Each ObjCell In [bigplage].Cells
ObjCell.Value = Sqr(ObjCell.Value * Sqr(2) + Log(3))
Next
TheTimerStop = Timer - TheTimerStart
If TheTimerStop < 0 Then TheTimerStop = TheTimerStop + 86400 'si déroulement à 0:00
TheTime(1) = Fix(TheTimerStop / 3600)
TheTime(2) = Fix((TheTimerStop - (TheTime(1) * 3600)) / 60)
TheTime(3) = Fix(TheTimerStop - ((TheTime(1) * 3600) + (TheTime(2) * 60)))
TheTime(4) = CInt((TheTimerStop - Fix(TheTimerStop)) * 100)
Message = "Macro exécutée en " & Right("0" & TheTime(1), 2) & " heures, " & Right("0" & TheTime(2), 2) & " minutes, " _
& Right("0" & TheTime(3), 2) & " secondes et " & Right("0" & TheTime(4), 2) & " centièmes de secondes."
MsgBox Message, vbOKOnly
End Sub
Sub Fast()
Dim TheTime(1 To 4) As Long, TheTimerStart As Double, TheTimerStop As Double
Dim Message As String
Dim i As Byte, y As Integer
TheTimerStart = Timer
'Mettre le code à exécuter et dont on mesure le temps d'exécution ici
Dim Montab As Variant, cmpt1 As Long, cmpt2 As Long
Montab = [bigplage].Value
For cmpt1 = LBound(Montab, 1) To UBound(Montab, 1)
For cmpt2 = LBound(Montab, 2) To UBound(Montab, 2)
Montab(cmpt1, cmpt2) = Sqr(Montab(cmpt1, cmpt2) * Sqr(2) + Log(3))
Debug.Print Montab(cmpt1, cmpt2)
Next cmpt2
Next cmpt1
[bigplage].Value = Montab
TheTimerStop = Timer - TheTimerStart
If TheTimerStop < 0 Then TheTimerStop = TheTimerStop + 86400 'si déroulement à 0:00
TheTime(1) = Fix(TheTimerStop / 3600)
TheTime(2) = Fix((TheTimerStop - (TheTime(1) * 3600)) / 60)
TheTime(3) = Fix(TheTimerStop - ((TheTime(1) * 3600) + (TheTime(2) * 60)))
TheTime(4) = CInt((TheTimerStop - Fix(TheTimerStop)) * 100)
Message = "Macro exécutée en " & Right("0" & TheTime(1), 2) & " heures, " & Right("0" & TheTime(2), 2) & " minutes, " _
& Right("0" & TheTime(3), 2) & " secondes et " & Right("0" & TheTime(4), 2) & " centièmes de secondes."
MsgBox Message, vbOKOnly
End Sub