Sub Recuperation_scores()
Dim chemin$, a(1 To 16), tablo, resu(), i&, x$, f$, test1 As Boolean, test2 As Boolean, j%
chemin = [A1]
a(1) = "G2"
a(2) = "H2"
a(3) = "I2"
a(4) = "J2"
a(5) = "M195"
a(6) = "M196"
a(7) = "M197"
a(8) = "M198"
a(9) = "M199"
a(10) = "M200"
a(11) = "M201"
a(12) = "F196"
a(13) = "F197"
a(14) = "F198"
a(15) = "F199"
a(16) = "F200"
tablo = [A3].CurrentRegion.Resize(, 4)
With [A3].CurrentRegion.Columns(5).Resize(, 16)
ReDim resu(1 To .Rows.Count, 1 To 16) 'resu = .Formula
For i = 2 To UBound(tablo)
If IsDate(tablo(i, 1)) Then
x = tablo(i, 4)
f = "='" & chemin & tablo(i, 2) & "\[" & x & "]10. Quality KPI'!"
test1 = x = "E_0018_v20_5K_QC_report.xls" Or x = "E_0306_v8_8K_QC_report.xlsx" Or x = "E_0022_v9_2K_QC_report.xlsx"
test2 = x = "E_0018_v21_5K_QC_report.xlsx" Or x = "E_0306_v9_8K_QC_report.xlsx" Or x = "E_0022_v11_2K_QC_report.xlsx"
For j = 1 To 16
If test1 And (j < 4 Or j > 11) Or test2 Then resu(i, j) = f & a(j)
Next j
End If
Next i
Application.DisplayAlerts = False
For j = 1 To 16: resu(1, j) = .Cells(1, j): Next 'titres
.Formula = resu
End With
End Sub