Here's my revised code (I follow it easier). I'll have a look at the buttons
[VBA]
Option Explicit
Dim x As Long, y As Long, z As Long
Dim rngTriang As Range, r As Range, cls As Long

Function Rng(Sel As Range, Direct As Long) As Range
x = 0: y = 0: z = 0
cls = Sel.Cells.Count
If Sel.Rows.Count > 1 Then
Set Rng = Sel.Columns(1)
Else
If Direct = -1 Then
Set Rng = Sel.Cells(1, 1).Offset(1 - cls).Resize(cls)
Else
Set Rng = Sel.Cells(1, 1).Resize(cls)
End If
End If
End Function
Sub TopLeft()
Set r = Rng(Selection, 1)
x = r.Cells.Count
Set r = r.Cells(1, 1)
Set rngTriang = r

For z = x To 1 Step -1
Set rngTriang = Union(rngTriang, r.Offset(y).Resize(, z))
rngTriang.Interior.ColorIndex = 6
y = y + 1
Next
rngTriang.Interior.ColorIndex = 1
r.Offset(x - 1).Activate
Set rngTriang = Nothing
End Sub

Sub BotLeft()
Set r = Rng(Selection, -1)
x = r.Cells.Count
Set r = r.Cells(1, 1)
Set rngTriang = r

For z = 1 To x
Set rngTriang = Union(rngTriang, r.Offset(y).Resize(, z))
y = y + 1
Next
rngTriang.Interior.ColorIndex = 22
r.Offset(x - 1).Activate
Set rngTriang = Nothing
End Sub

Sub BotRight()
Set r = Rng(Selection, -1)
x = r.Cells.Count
Set r = r.Cells(1, 1)
Set rngTriang = r.Offset(x - 1)


For z = x To 1 Step -1
Set rngTriang = Union(rngTriang, r.Offset(z - 1, y).Resize(, z))
y = y + 1
Next
rngTriang.Interior.ColorIndex = 3
r.Offset(x - 1).Activate
Set rngTriang = Nothing
End Sub

Sub TopRight()
Set r = Rng(Selection, 1)
x = r.Cells.Count
Set r = r.Cells(1, 1)
Set rngTriang = r

For z = x To 1 Step -1
Set rngTriang = Union(rngTriang, r.Offset(y, x - z).Resize(, z))
y = y + 1
Next
rngTriang.Interior.ColorIndex = 4
r.Offset(x - 1).Activate
Set rngTriang = Nothing
End Sub

Sub DiagBLTR()
Set r = Rng(Selection, 1)
x = r.Cells.Count
Set r = r.Cells(1, 1)
Set rngTriang = r.Offset(, x - 1)

For z = x To 1 Step -1
Set rngTriang = Union(rngTriang, r.Offset(y, z - 1))
y = y + 1
Next
rngTriang.Interior.ColorIndex = 14
r.Offset(x - 1).Activate
Set rngTriang = Nothing
End Sub

Sub DiagTLBR()
Set r = Rng(Selection, 1)
x = r.Cells.Count
Set r = r.Cells(1, 1)
Set rngTriang = r

For z = 1 To x
Set rngTriang = Union(rngTriang, r.Offset(y, z - 1))
y = y + 1
Next
rngTriang.Interior.ColorIndex = 16
r.Activate
Set rngTriang = Nothing
End Sub


[/VBA]