Bonjour
Bonjour à tous
Une variante à tester.
Option Explicit
Dim tablo, tabloR()
Dim i&, iR&, j&, col&
Sub NouveauTableau()
tablo = Range("B3").CurrentRegion
ReDim tabloR(1 To (UBound(tablo, 1) - 2) * 3 + 1, 1 To 7)
tabloR(1, 1) = tablo(2, 1)
tabloR(1, 2) = tablo(2, 2)
tabloR(1, 3) = tablo(2, 3)
tabloR(1, 4) = "année"
tabloR(1, 5) = tablo(1, 4)
tabloR(1, 6) = tablo(1, 7)
tabloR(1, 7) = tablo(1, 10)
iR = 1
For i = 3 To UBound(tablo, 1)
For col = 4 To 6
tabloR(iR + 1, 1) = tablo(i, 1)
tabloR(iR + 1, 2) = tablo(i, 2)
tabloR(iR + 1, 3) = tablo(i, 3)
tabloR(iR + 1, 4) = tablo(2, col)
tabloR(iR + 1, 5) = tablo(i, col)
tabloR(iR + 1, 6) = tablo(i, col + 3)
tabloR(iR + 1, 7) = tablo(i, col + 6)
iR = iR + 1
Next col
Next i
Rows(UBound(tablo, 1) + 2 & ":" & Rows.Count).Clear
Range("B" & UBound(tablo, 1) + 5).Resize(UBound(tabloR, 1), 7) = tabloR
With Range("B" & UBound(tablo, 1) + 5).Resize(UBound(tabloR, 1), 7)
.Borders.LineStyle = xlContinuous
.HorizontalAlignment = xlCenter
.Font.Bold = True
End With
End Sub
Bye !