For n = LBound(tablo, 2) + 1 To UBound(tablo, 2) 'n vaut la plage (c1:m7), ou "tablo" sans la primère colonne
If tablo(1, n) = "" Then tablo(1, n) = tablo(1, n - 1) 'balayer la 1er ligne de la plage n de droite à gauche??
Next
tablo2 = Sheets("Données").Range("A1:O" & Sheets("Données").Range("A" & Rows.Count).End(xlUp).Row) 'compte les lignes
For n = LBound(tablo2, 2) + 1 To UBound(tablo2, 2) '"tablo2" sans la premère colonne
If tablo2(1, n) = "" Then tablo2(1, n) = tablo2(1, n - 1) 'balayer "tablo2" si case vide (de droite à gauche?)
Next
For n = LBound(tablo2, 1) + 2 To UBound(tablo2, 1) 'tableau deux sans les deux premières lignes
For m = 6 To UBound(tablo2, 2) 'partie façade, vitrage et toiture ?
If tablo2(n, m) = "x" Then 'repère les "x" facade, vitre et toit
For p = LBound(tablo, 2) To UBound(tablo, 2)
If tablo(1, p) = tablo2(1, m) And tablo(2, p) = tablo2(2, m) Then '??
For q = 1 To 5 'partie date (5 valeurs possibles)
If tablo2(n, q) = "x" Then 'repère les "x" des dates
For s = LBound(tablo, 1) To UBound(tablo, 1)
If tablo(s, 1) = tablo2(2, q) Then 'fait correspondre les dates
tot = tot + tablo(s, p) '??
Range("P" & n) = tot '???
tot = 0 '???