Sub FormatDate()
Dim xarea As Range, x, n
Application.ScreenUpdating = False
For Each xarea In Selection.Areas
For Each x In xarea
If InStr(x, "/") > 0 Then
On Error Resume Next
n = IsDate(CDate(Mid(x, InStr(x, "/") + 1) & "/" _
& Left(x, InStr(x, "/") - 1) & "/" & Year(Date)))
If Err.Number = 0 Then
x.NumberFormat = "dd/mm/yyyy"
x.Value = x.Value
End If
End If
Next x
Next xarea
End Sub