En voila une petite partie. IL y en a presque 800. Toutes avec uniquement 2 lignes de code pour chaque cas. Donc je ne peux pas faire mieux.
If Not Intersect(Target, Range("$Y$1:$AA$3")) Is Nothing Then GoTo MergeC3
If Not Intersect(Target, Range("$Y$4:$AA$6")) Is Nothing Then GoTo MergeC6
If Not Intersect(Target, Range("$Y$7:$AA$9")) Is Nothing Then GoTo MergeC9
If Not Intersect(Target, Range("$Y$10:$AA$12")) Is Nothing Then GoTo MergeF3
If Not Intersect(Target, Range("$Y$13:$AA$15")) Is Nothing Then GoTo MergeF6
If Not Intersect(Target, Range("$Y$16:$AA$18")) Is Nothing Then GoTo MergeF9
If Not Intersect(Target, Range("$Y$19:$AA$21")) Is Nothing Then GoTo MergeI3
If Not Intersect(Target, Range("$Y$22:$AA$24")) Is Nothing Then GoTo MergeI6
If Not Intersect(Target, Range("$Y$25:$AA$27")) Is Nothing Then GoTo MergeI9
'If Selection.Value = " " Or Selection.Value = 0 Then GoTo Cantdo
GoTo ReStart ' Waiting for user to click on the next Selection
' ---------------------------------------------------------------------Merge A--------------
MergeA1:
MergeA1sub Rng, x, y, Target, A1, CA1, ModifOne, ModifOneToNine, MainA, MGroup1, VertiAtoC, Horiz1to3, ModifVerti1, ModifHoriz1, SavedValue, A_1
GoTo ReStart
' ------------------------------------------------------
MergeA2:
MergeA2sub Rng, x, y, Target, A2, CA2, ModifOne, ModifOneToNine, MainA, MGroup1, VertiDtoF, Horiz1to3, ModifVerti2, ModifHoriz1, SavedValue, A_2
GoTo ReStart
' ------------------------------------------------------