Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNombre As Range, Maplage As Range, Somme As Range, n%, decal%, f$
Set MonNombre = [A2] 'à adapter
Set Maplage = [A4:C12] 'à adapter
Set Somme = [A15:C22] 'à adapter
If Intersect(Target, MonNombre) Is Nothing Then Exit Sub
If Abs(Int(Val(CStr(MonNombre)))) < 1 Then MonNombre = 1
If Int(MonNombre) <> MonNombre Then MonNombre = Int(MonNombre)
decal = Maplage.Columns.Count + 1
Application.ScreenUpdating = False
Maplage.Offset(, decal).Resize(, Columns.Count - decal - Maplage.Column + 1).Clear 'RAZ
For n = 1 To MonNombre
Maplage.Copy Maplage.Offset(, (n - 1) * decal)
Maplage.Offset(, (n - 1) * decal).Cells(1) = "MaPlage" & n
f = f & "," & Maplage.Offset(, (n - 1) * decal).Cells(2, 1).Address(0, 0)
Next
Somme(1) = "=SUM(" & Mid(f, 2) & ")"
Somme(1).Copy Somme
End Sub