Je hoeft niet telkens de code in je bericht te plaatsen als er niets aan gewijzigd is, want die code heb ik zelf geschreven, dus ik weet echt wel hoe die er uitziet.
Nou, als hij op deze regel komt:
.Columns("a:l").Interior.ColorIndex = xlColorIndexNone
gooit hij al de kleuren uit de cellen boven regel 21
Natuurlijk, die regel wist alle kleuren in de kolommen A t/m L. Tot dusver is nergens gebleken dat er boven rij 21 met niet-grijze kleuren werd gewerkt, dus kon daar ook geen rekening mee worden gehouden.
Hoewel de oplossing bijna letterlijk uit 1 van mijn eerdere macro's in dit topic kan worden overgenomen, zal ik die hier nog een keer geven, maar je begrijpt: door code te kopiëren leer je helemaal niets, je moet ze zelf proberen te schrijven.
Wijzig dit:
With Sheets(1)
.Columns("a:l").Interior.ColorIndex = xlColorIndexNone
Application.ScreenUpdating = False
l = .Range("a" & .Rows.Count).End(xlUp).Row
Do Until l = 21
in dit:
With Sheets(1)
Application.ScreenUpdating = False
l = .Range("a" & .Rows.Count).End(xlUp).Row
.Range("a21:l" & l).Interior.ColorIndex = xlColorIndexNone
Do Until l = 21