Sub EncadrementTableau(firstcell As Range, lastcell As Range, couleur As Long, Optional haut As Byte = 1, Optional bas As Byte = 1, Optional gauche As Byte = 1, Optional droit As Byte = 1)
Dim plage As Range, nbcol As Byte, nblgn As Byte, cuadro As Range
Dim h As Range, b As Range, g As Range, d As Range, ta, tb, i
Set plage = Range(firstcell, lastcell)
nbcol = plage.Columns.Count
nblgn = plage.Rows.Count
'Encadrement supérieur du tableau
Set h = plage(0, 1).Resize(, nbcol)
'Encadrement inférieur du tableau
Set b = plage(nblgn + 1, 1).Resize(, nbcol)
'Encadrement gauche du tableau
Set g = plage(1 - haut, 0).Resize(nblgn + haut + bas)
'Encadrement droit du tableau
Set d = plage(1 - haut, nbcol + 1).Resize(nblgn + haut + bas)
ta = Array(haut, bas, gauche, droit)
tb = Array(h, b, g, d)
For i = 0 To UBound(ta)
If ta(i) Then Set cuadro = Union(tb(i), IIf(cuadro Is Nothing, tb(i), cuadro))
Next
If Not cuadro Is Nothing Then cuadro.Interior.color = couleur
End Sub