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 33 34 35 36 37 38 39 40 41
|
Sub TestCalculDeLAge()
Dim HeureDebut2, HeureFin2, TempsTotal2
HeureDebut2 = Timer
CalculDeLAge 3
HeureFin2 = Timer
TempsTotal2 = HeureFin2 - HeureDebut2
MsgBox "Temps total du traitement : " & Round(TempsTotal2, 2) & " seconde(s)", vbInformation, "Calcul de l'âge"
End Sub
Sub CalculDeLAge(ByVal ColonneAge As Long)
Dim DerniereLigne As Long
With ActiveSheet
DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
Application.Calculation = xlCalculationManual
With .Range(.Cells(2, ColonneAge), .Cells(DerniereLigne, ColonneAge))
.Formula = "=IF(DATEDIF(B2,A2,""y"")<2,IF(DATEDIF(B2,A2,""m"")<1,DATEDIF(B2,A2,""d"")&"" jours"",DATEDIF(B2,A2,""m"")&"" mois""),DATEDIF(B2,A2,""y"")&"" ans"")"
End With
Application.Calculation = xlCalculationAutomatic
DoEvents
With .Range(.Cells(2, ColonneAge), .Cells(DerniereLigne, ColonneAge))
.Copy
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
End With
End Sub |
Partager