В макросе, где же ещё?
[vba]Код
Sub Generate()
Application.ScreenUpdating = False
Sheets("Купоны").Protect Password, UserInterfaceOnly:=True
Randomize
Dim arr: arr = Array(1, 2, "x")
Dim cell As Range
Dim rng As Range
If Application.Caller = "btn_region" Then
Set rng = Selection
ElseIf Application.Caller = "btn_all" Or Application.Caller = "btn_all2" Then
Set rng = Range("M2:AK16").SpecialCells(12)
End If
For Each cell In rng
If (cell = "" And Application.Caller = "btn_all2") Or Application.Caller <> "btn_all2" Then cell = arr(Int(3 * Rnd))
Next cell
Application.ScreenUpdating = True
End Sub
[/vba]