je voudrais utiliser une macro qui change la couleur de fond d'une plage de cellules
à partir de la 2e ligne jusqu'à la dernière ligne non vide des colonnes A à J.
J'ai utilisé l'enregistreur de macro et collé le code dans une boucle:
Sub test()
For n = 2 To Range("A65536").End(xlUp).Row
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Next n
End Sub
... mais évidemment c'est pas le bon code que je cherche.
que faut-il mettre à la place de "Selection" (qui me change la couleur uniquement des plages sélectionnées)
pour que la boucle marche?
Sub test()
Dim n As Long
n = Range("A65536").End(xlUp).Row 'ou n = Range("J65536").End(xlUp)
With Range("A2:J" & n).Interior
.ColorIndex = 35
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
Sub test()
Dim n As Integer, cpt As Integer
cpt = Range("A65536").End(xlUp).Row
For n = 2 To cpt
With Cells(n, 1).Interior
.ColorIndex = 35
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Next n
End Sub
Où n est le numéro de ligne (variable) et i le numéro de colonne.
cpt est une variable qui contient le nombre de lignes à modifier, evite à VBA d'avoir à recalculer ce nombre à chaque passage de boucle For
A bientôt
Désolé: je n'avais pas vu le besoin sur les colonne A à J
Sub test()
Range(Cells(2, "A"), _
Cells(Columns("A:J").SpecialCells(xlCellTypeConstants, _
23).Areas(2).Rows.Count + 1, "J")).Interior.ColorIndex = 35
End Sub
EDITION: houps désolé pour la collision michel_m (bonjour )