Option Explicit
Option Private Module
Public Sub ChercheErreurs()
Dim w As Worksheet
Dim c As Range
Dim m As String
For Each w In ActiveWorkbook.Worksheets
For Each c In w.UsedRange
If IsError(c.Value) Then
m = m & CStr(c.Value) & " - " & w.Name & "!" & c.Address(0, 0) & vbCr
End If
Next c
Next w
If m > "" Then
Set w = Workbooks.Add(xlWBATWorksheet).Worksheets(1)
m = "Erreur(s) trouvée(s): " & vbCr & m
w.Range("A1").Resize(UBound(Split(m, vbCr))).Value = _
WorksheetFunction.Transpose(Split(m, vbCr))
Else
MsgBox "Aucune erreur trouvée."
End If
End Sub