Sub MiseEnFormeFond(CouleurFond As Range, Zone As Range, deb)
'job75
'paramètre deb : 1ère ligne à colorer dans la feuille
Dim coul, cel As Range, plage As Range
CouleurFond.Select
coul = Application.Dialogs(xlDialogPatterns).Show
If coul = False Then Exit Sub
coul = CouleurFond.Interior.Color
Application.ScreenUpdating = False
Zone.Parent.Activate
'---colore la zone---
For Each cel In Zone
If IsEmpty(cel) And cel.Borders.Value = xlNone Then _
Set plage = Union(cel, IIf(plage Is Nothing, cel, plage))
Next
If Not plage Is Nothing Then plage.Interior.Color = coul
'---colore le reste de la feuille (4 plages entourant Zone)---
On Error Resume Next
With Zone
.Offset(, 1 - .Column).Resize(, .Column - 1).Interior.Color = coul
.Offset(, .Columns.Count).Resize(, Columns.Count - .Column - .Columns.Count + 1).Interior.Color = coul
.EntireRow.Offset(deb - .Row).Resize(.Row - deb).Interior.Color = coul
.EntireRow.Offset(.Rows.Count).Resize(Rows.Count - .Row - .Rows.Count + 1).Interior.Color = coul
End With
End Sub