Option Explicit
Sub Test()
Dim RngDon As Range, TDon(), TRés(), L&, C&
Set RngDon = [ListeRepertoires].Resize(, 2)
TDon = RngDon.Value
ReDim TRés(1 To UBound(TDon, 1), 1 To 7)
On Error Resume Next
For L = 1 To UBound(TDon, 1)
Err.Clear: ChDrive TDon(L, 1): ChDir TDon(L, 1)
If Err = 0 Then
Workbooks.Open TDon(L, 2)
If Err = 0 Then
For C = 1 To 4: TRés(L, 3 + C) = Application.Range("Donn" & C).Value: Next C
ActiveWorkbook.Close SaveChanges:=False
TRés(L, 2) = "Valide"
Else: TRés(L, 2) = "Non valide": End If
TRés(L, 1) = "Valide"
Else: TRés(L, 1) = "Non valide": End If
Next L
RngDon.Offset(, 3).Resize(, 7).Value = TRés
End Sub